I don't think this is possible to do in a memory-efficient way. I thus think it should not be easy, nor concise. Doing inefficient things should be painful and discouraged.
-----Original Message----- From: Sebastian Markbåge [mailto:sebast...@calyptus.eu] Sent: Friday, July 17, 2015 19:14 To: Domenic Denicola Cc: Matthew Robb; es-discuss@mozilla.org >> es-discuss Subject: Re: Instance bound class methods Domenic, would you care to propose an alternative that is concise and memory efficient if it is an anti-pattern? That would be helpful and constructive (your comment, not so much). > On Jul 13, 2015, at 8:27 AM, Domenic Denicola <d...@domenic.me> wrote: > > From: es-discuss [mailto:es-discuss-boun...@mozilla.org] On Behalf Of Brendan > Eich > >> You're counting on the property assignment being moved into the constructor, >> where `this` is bound. In a class body in ES6 (without property assignment >> extension), especially in the top level where method defintiions go, `this` >> isn't obviously bound to the newly constructed instance. >> >> Ok, that's kind of a nit, or an observation. No worries. > > Yeah, just to highlight this, the property initializer syntax is very far > from reaching consensus, and I wouldn't take that for granted and then ask if > we can build something else on top of it. > >> Bigger question is what we want: method per instance allocation cost, which >> what you did imposes? Or something that can be more efficiently implemented, >> such as what Strong/SoundScript proposes (last I looked). >> The latter is what Java and C++ do. Then the trick is enabling first-class >> function extraction from method, which is a pay-for-what-you-ask-for >> alternative to allocation per method per constructed instance. > > Agreed. The pattern shown is really an antipattern in my book (and according > to conventional JavaScript wisdom). My understanding is that React encourages > this antipattern, but that's not something we should encourage at a language > level. (Which is part of why property initializer syntax may not make it, at > least not in the form you show). > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss