Parameter lists as arguments destructuring sugar
Brendan Eich
brendan at mozilla.com
Sun Apr 10 09:32:25 PDT 2011
On Apr 9, 2011, at 10:08 PM, Sean Eagan wrote:
> function ({a, b}){}
> //or
> function ({a: b, c: d}){}
This has been implemented since at least Firefox 3 (also IINM supported in Rhino):
js> function f({a, b}){print(arguments[0], arguments.length, a, b)}
js> f({a:42, b:99})
[object Object] 1 42 99
js> function g({a:x, b:y}){print(arguments[0], arguments.length, x, y)}
js> g({a:43, b:100})
[object Object] 1 43 100
It is part of the Harmonious Proposal.
The actual (positional) parameters reflect as arguments properties, while the formal (destructured-to) variables are local bindings equivalent to var declarations, initialized before the body of the function is evaluated.
/be
More information about the es-discuss
mailing list