On Apr 2, 2012, at 6:48 AM, Dmitry Soshnikov wrote:
>
>
> P.S.:
>
> Offtopic footnote. 6 types:
>
> 1. Function Declaration (FD). Features: "hoisting", always named.
>
> 2. Function Expression (FE). Features: no "hoisting", available for
> immediately invoked functions (IIF).
>
> 3. Named Function Expressions (NFE). Features: no "hoisting", the same as FE
> actually, but because of many old (?) bugs/features, especially in IE, I put
> them in the separate type. Since ES5 strict they are just FE if implemented
> correctly.
>
> 4. Functions created via Function constructor (FF). Features: only global in
> the scope chain.
And always anonymous.
> 5. Bound functions (BF). Features: captures `this', but "dynamic" `this' in
> case of `new', no `prototype', no [[Scope]], no [[Construct]], but delegation
> to the target's, etc.
No [[Scope]]? I must be missing something! Given this code:
bound= (function a(i) { return function b () { return i }.bind(null) })(27);
bound()
--> 27
How can bound() resolve `i` without a [[Scope]] ?
> 6. Arrow functions (AF). Features: captured `this', captured `this' even in
> case of `new'.
And [[Extensible]] === false... I wonder why, why non-extensible ?
--
Jorge.
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss