Clarification regarding "top level" arrow functions and "this"/"arguments"
Gary Guo
nbdd0121 at hotmail.com
Wed Jan 21 19:08:20 PST 2015
I think the spec is clear. The hasThisBinding of function environment record of arrow function will return false, thus always trace to the outer environment - in your case, could be global environment record or module environment record, which resolves the this binding to either global object or undefined.
> Date: Wed, 21 Jan 2015 10:13:39 -0800
> From: list at felix-kling.de
> To: es-discuss at mozilla.org
> Subject: Clarification regarding "top level" arrow functions and "this"/"arguments"
>
> [Section
> 14.2.17](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-arrow-function-definitions-runtime-semantics-evaluation)
> says
>
> > Any reference to `arguments`, `super`, or `this` within an
> > *ArrowFunction* are resolved to their bindings in the lexically
> > enclosing function.
>
> However, what if there is no enclosing function? Shouldn't this say
> "enclosing environment"?
>
> If yes, what would be the expected behavior of an arrow function that
> references `this` and `arguments`?
> I assume in case of `this`, it would just resolve to the *thisBinding*
> of the environment (if there is one). Since there is no `arguments`
> binding (by default) I assume accessing `arguments` would throw a
> reference error.
>
> Is my understanding correct?
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20150122/a435c66d/attachment-0001.html>
More information about the es-discuss
mailing list