On Mon, May 23, 2011 at 08:51, Brendan Eich <[email protected]> wrote:
> Class syntax is like a lint brush for such features. If we add it, it will 
> accrete more semantics (with unambiguous syntax, I hope) over time. This is 
> just inevitable, in my view. It makes me want to resist classes and look at 
> smaller and more direct fixes for the two known prototypal hazards.

Yes, please!

I assume "two known hazards" is referring to your previous email:
"subclassed prototype/constructor set-up and super calls."

I've been using this pattern in my OOP javascript programs lately:
https://github.com/isaacs/inherits/blob/master/inherits.js

It works really well, behaves as expected (easy for the author to say,
ha, but it doesn't violate instanceof, doesn't call ctors more than
once, doesn't clobber already-added prototype properties, etc.)  And
it's about 10 lines, easy to read and grok.

What would make it even nicer, however, with minimal added syntax:

1. Call "super(a, b, c)" instead of "Child.super.call(this, a, b, c)"
2. Maybe Parent.extend(Child) or Child.inherit(Parent) instead of
inherits(Child, Parent)
3. Right now, calling parent versions of overridden methods is a
painful: "this.constructor.super.prototype.someMethod.call(this)".
It'd be nice to use something like "super.someMethod()".
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to