"Pretty" function expression names
Brendan Eich
brendan at mozilla.com
Sun May 10 15:41:11 PDT 2009
On May 10, 2009, at 2:25 PM, Laurens Holst wrote:
> Laurens Holst schreef:
>> Brendan Eich schreef:
>>> http://wiki.ecmascript.org/doku.php?id=strawman:name_property_of_functions
>>>
>>> I did not reproduce all the details from the thread, but I tried
>>> to capture the essential points. Please point out omissions and
>>> errors. Thanks,
>>
>> What I’m missing about Function.name is that you can only specify
>> it using function literals (at least, currently in Firefox I think
>> that is the case). It would be nice if you could also either set
>> this with either the Function constructor, or after the object has
>> been created.
>
> Ah, I see this part is already covered by Maciej’s Function.create
> semi-constructor proposal. In that case, should make sure this
> Function.create also supports passing closures so that we won’t need
> a Function.create2 :).
Why would we ever want to mutate a closure? Please re-read
https://mail.mozilla.org/pipermail/es-discuss/2009-March/008940.html
> Maybe make the params parameter list an array so that create is less
> dependant on the length of the arguments passed and more extensible.
This sounds like a good idea to me. The counter-argument is the
obligatory overhead of an array of parameter names. Others should
weigh in.
One good thing about your proposal: it avoids (or fails to reuse, on
the down side) quirky standard behavior of the Function constructor.
Did you know ES1 specifies that new Function("a,b", "a+b") creates a
function similar to function anonymous(a, b) { return a + b; }? That
string-pasting feature of the Function constructor would seem to carry
over to Function.create, at first glance.
/be
More information about the es-discuss
mailing list