Summary: prototypes as classes

Axel Rauschmayer axel at rauschma.de
Tue Jun 28 17:45:15 PDT 2011


> But before you've created an instance, it is pretty handy to have the constructor bound to a name so you can get to it. I don't think making the named object be the constructor means that they're *more* important, just that you generally have to go through them *first* to get to an instance. They get the name because they're the entrypoint.

It depends on how you view instance creation:

Prototypes-as-classes: new C() means:
(1) Create an instance o whose prototype is C.
(2) Initialize the new instance via o.constructor().

Constructor functions: new C() means:
(1) Create an instance o whose prototype is C.prototype.
(2) Initialize it via the body of the constructor function (with |this| set up properly).

Thus:
- Prototypes-as-classes: step (1) determines the name of the class (which – to me – makes more sense for instanceof and subclassing)
- Constructor functions: step (2) determines the name of the class.

-- 
Dr. Axel Rauschmayer

axel at rauschma.de
twitter.com/rauschma

home: rauschma.de
blog: 2ality.com





More information about the es-discuss mailing list