arrow function syntax simplified

Brendan Eich brendan at
Wed Mar 28 13:46:21 PDT 2012

Kevin Smith wrote:
>     I hate the CoffeeScript deviation, though. It's just confusing for
>     anyone who ever learned that fat-arrow binds |this| and thin-arrow
>     doesn't.
> True.  On the other hand, "all arrows bind |this|" is also quite 
> simple and easy to remember.

Yes, and I kept the part of the proposal that allows |this| as a leading 
arrow formal parameter, including with parameter default value. This 
suggests a slight variation on the strawman, per your suggestion:

x -> { return this.x; } // lexical this for thin arrow
x => this.x // as for fat arrow

(this, x) -> { return this.x; } // dynamic this, five letter syn-tax
(this, x) => this.x // ditto for the expression-body form

IOW we make fairly concise, orthogonal syntactic tools for composing (a) 
lexical vs. bound |this|, and (b) block vs. expression (including object 
literal) body.

(I used your suggestion of the C#-like shorthand for 
single-formal-parameter above -- nice!)


More information about the es-discuss mailing list