Summary: prototypes as classes

Irakli Gozalishvili rfobic at
Wed Jun 29 17:46:43 PDT 2011

There have been multiple thread on this and I did not know were to comment, so I'll add few comments here.

I think that whole constructors as classes business in JS is confusing for everyone coming to JS, and they only understand it after understanding confusing constructor- prototype relationship.

It is true that people find 

var point = new Point(x, y)
point instanceof Point

intuitive but that's because it looks like Java. Also they are quite puzzled to find out that in some cases:

var point = Point(x, y)

works the same.

On the other hand people may find, y) as intuitive, as they will think of ruby instead of java. Also, I do not think there is a point to use `constructor` with all it's confusing prototype relationships for initialization in "prototypes as classes", just use initialize method to do that. 

Is it really too late to undo `constructor` as classes ? There are other proposals like rest and spread with a hope that `arguments` will die off some day. Why this would be different ?

Finally I believe that killing constructors will make js straight forward to understand and lighter in syntax.

And not everyone tries to emulate classical inheritance today:

Irakli Gozalishvili
Address: 29 Rue Saint-Georges, 75009 Paris, France (

On Thursday, 2011-06-30 at 24:24 , Axel Rauschmayer wrote:

> > Last concrete disagreement we had was over new C() vs. C() in the current language being notably different from new C() vs. C.constructor() in the alternate-reality language with prototypes as classes.
> As in “don’t mix too well”. I agree with that. That will be a challenge for class literals. But the abstraction argument might apply to both cases: If people see a class C, they just want to instantiate it via new C(x,y). As long as instanceof works accordingly afterwards, I’m not sure much has changed *superficially*.
> -- 
> Dr. Axel Rauschmayer
> axel at (mailto:axel at
> (
> home: (
> blog: (
> _______________________________________________
> es-discuss mailing list
> es-discuss at (mailto:es-discuss at

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list