On Oct 1, 2012, at 4:08 PM, Domenic Denicola wrote: > On Oct 1, 2012, at 18:58, "Brendan Eich" <bren...@mozilla.org> wrote: > >> I am warming up to the way CoffeeScript does things -- not the translation >> scheme, __extends, __super__ -- rather, the plain Object instance created as >> C.prototype that has B.prototype as its [[Prototype]] but has shadowing >> 'constructor' set to C. > > If I'm understanding correctly, this would be the same as > > C.prototype = Object.create(B.prototype); > C.prototype.constructor = C; > > which I thought was the "recommended" approach (although by who or where, I > admit I can't quite pinpoint). Am I on the right track? And can anyone else > comment on the commonality or recommendedness of this pattern, to see if > we're paving the right cow paths? >
This is essentially how ES6 classes get wired up. Actually what they do is closer to: let tempProto = Object.create(B.prototype); tempProto.constructor = function (<constructor params>) {<constructor body>); tempProto.constructor.__proto__ = B; tempProto.constructor.prototype = tempProto; C=tempProto.constructor; _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss