super.apply(this, arguments)
P T Withington
ptw at pobox.com
Fri Dec 21 04:56:44 PST 2007
On 2007-12-21, at 00:39 EST, Brendan Eich wrote:
> On Dec 20, 2007, at 4:01 PM, Jeff Dyer wrote:
>
>> The original Netscape ES4 proposal had syntax for passing arguments
>> as an
>> array. (Waldemar are you listening?) IIRC it used triple dots like
>> this:
>>
>> foo(...args)
>>
>> to mean use the elements of 'args' as positional arguments of foo. We
>> dropped this from AS3 for lack of evidence for its need.
>
> Wow. I like this, never saw it in Waldemar's proposals, but of
> course Python and other languages have something akin. This is the
> missing solution that satisfies the demand for compositional new and
> apply, as well as other apply-like use-cases (see the thread on this
> very list, inspired by Python, starting here).
>
> Presumably you could supply one or more positional actual parameters
> before the "packed" parameter, as Python allows:
>
> >>> def foo(a,b,c):
> ... print a,b,c
> ...
> >>> foo(1,2,3)
> 1 2 3
> >>> a = [1,2,3]
> >>> foo(*a)
> 1 2 3
> >>> b = [2,3]
> >>> foo(1,*b)
> 1 2 3
>
> This beats a super.apply special form any day!
Cute! So ... is the 'spread' operator that spreads an array of
arguments into a parameter list.
More information about the Es4-discuss
mailing list