>> I meant: One can already write methods (functions with dynamic |this|) in a >> very concise manner, thanks for Allen’s object literal extensions. Then you >> have to ask: Do we really need the dynamic this arrow ->, or can we make do >> with just the lexical this arrow =>. > > We do not propose to cripple the shorter syntax. The dynamic-this use-cases > for functions are at least as common as "var self=this;... function(){... > self...}" use-cases for lexical this, or roughly about the same (in my > experience -- anyone have data?).
Are functions that depend on dynamic |this| ever *not* methods? Wouldn’t you always want to use an object literal for methods, especially if some features (such as |super|) depend on it? Isn’t it then a case of { foo: (x) -> { ... } } versus { foo(x) { ... } } On the other hand, if the ability to omit returns can only be got via arrow->functions then I can see why you would want to keep them for methods. But even implicit returns seem to matter most in non-method settings (e.g. if a function is the argument of a function). Maybe I just like the distinction introduced by block lambdas too much: - dynamic this --> existing functions and methods - lexical this --> new, more compact construct, mainly used as the argument of functions and methods. This distinction works well as a rule of thumb and keeps things easy to explain. -- Dr. Axel Rauschmayer a...@rauschma.de twitter.com/rauschma home: rauschma.de blog: 2ality.com _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss