> On its way to being an edge case.
Not really because arrow functions are not re-bindable. They are always bound to a single object since their creation. They are meant to be used as “lambda” functions”, while providing a workaround for accessing properties of their “parent object” (ie the object referred by “this” at their creation). They are not simply a shortcut version of “function” like many people thinks. From: Brian Blakely [mailto:[email protected]] Sent: Tuesday, October 24, 2017 3:39 PM To: Jordan Harband <[email protected]> Cc: dante federici <[email protected]>; es-discuss <[email protected]> Subject: Re: Re: Shorter syntax for arrow function assignment > normal functions ... remain necessary for any use case where `this` needs to > be determined at invocation time. On its way to being an edge case. On Tue, Oct 24, 2017 at 2:46 PM, Jordan Harband <[email protected] <mailto:[email protected]> > wrote: "ES5 functions" - by which you mean, normal functions - are not "outmoded", they remain necessary for any use case where `this` needs to be determined at invocation time. Nothing should ever produce an arrow function without `=>`; and exports assuming `const` is an interesting idea, but explicit > implicit, and "typing less" is simply not a goal worth optimizing for by itself. On Tue, Oct 24, 2017 at 11:05 AM, Matthew Robb <[email protected] <mailto:[email protected]> > wrote: There is practically no gain to suggest this syntax for arrows anyway as a module has no this binding you are creating a perpetually contextless function whereas using this shorthand syntax for a normal function makes some sense. You lose implicit return regardless. - Matthew Robb On Tue, Oct 24, 2017 at 1:47 PM, Andrea Giammarchi <[email protected] <mailto:[email protected]> > wrote: > functions are already outmoded I don't know where you come from but to me: ```js // this ain't outmoded at all const obj = { method() { return this === obj; } }; // this ain't outmoded at all class Any { method() { return this instanceof Any; } } ``` And a module that provides mixins is definitively not outmoded at all ```js export method() { return this !== undefined; }; ``` Omitting the arrow is everything but a syntax win here. Regards On Tue, Oct 24, 2017 at 2:32 PM, Brian Blakely <[email protected] <mailto:[email protected]> > wrote: At current, sans an explicit assignment, the pragma `foo() {...}` should throw. On Tue, Oct 24, 2017 at 1:26 PM, dante federici <[email protected] <mailto:[email protected]> > wrote: Another annoying thing JS has to deal with is: ``` // implicitly 'var' someVar = 10; ``` So, something like: ``` myFn() { } ``` Would be considered as: ``` var myFn = function() { } ``` with what semantics exist now. Not best practices, but what is currently interpreted in the language. I'd 100% agree that, as a shorthand, this is nice: ``` myFn() { } const myFn = () => {} ``` Which is what I mean. But I'm not the full implementation of JavaScript. _______________________________________________ es-discuss mailing list [email protected] <mailto:[email protected]> https://mail.mozilla.org/listinfo/es-discuss _______________________________________________ es-discuss mailing list [email protected] <mailto:[email protected]> https://mail.mozilla.org/listinfo/es-discuss _______________________________________________ es-discuss mailing list [email protected] <mailto:[email protected]> https://mail.mozilla.org/listinfo/es-discuss _______________________________________________ es-discuss mailing list [email protected] <mailto:[email protected]> https://mail.mozilla.org/listinfo/es-discuss _______________________________________________ es-discuss mailing list [email protected] <mailto:[email protected]> https://mail.mozilla.org/listinfo/es-discuss --- This email has been checked for viruses by AVG. http://www.avg.com
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

