Must built-in prototypes also be valid instances? (Was: Why DataView.prototype object's [[Class]] is "Object"?)

Domenic Denicola domenic at
Mon Oct 1 16:08:01 PDT 2012

On Oct 1, 2012, at 18:58, "Brendan Eich" <brendan at> 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?

More information about the es-discuss mailing list