On Jun 25, 2011, at 2:01 PM, Dmitry A. Soshnikov wrote: > On 26.06.2011 0:49, Brendan Eich wrote: >> On Jun 25, 2011, at 11:13 AM, Axel Rauschmayer wrote: >> >>> I don’t know if this has been discussed, but I find the |super| work-around >>> provided by YUI and CoffeeScript (in the generated code) not that bad: >>> >>> ThisClass.__super__.foo.call(this, arg1, arg2); >> I'm not sure what you mean. If we add 'super', surely we want more than the >> __super__ hack. We also want a callable expression 'super' in constructors, >> and a 'super.foo' form for method and other property accesses from subclass >> methods. We don't want people writing out .call by hand. >> >> > > Apologize in advance if I'm mentioning already discussed thing in these > classes-related topics (unfortunately hadn't enough of time to read them all > and follow), but from what I can say, people want to write also and _mostly_ > _just_ `super`, not even `super.foo` (though, of course `super.foo` notation > would be also nice to have -- to be able to call _any_ parent method).
In a constructor, calling super calls the super-constructor. No need for super.constructor() or whatever. Unlike CoffeeScript, which allows a method foo to super-call only the method of the same name in the superclass, the ES.next proposals I've seen want super.foo(). This allows super.bar() from method foo of a subclass, where the superclass bar might of course loop around and call the superclass foo. > Again, we even _now_ (vis simple JS class-library) can write normal > `this.super(...)` calls from _any_ descendant method (and could even in ES3 > era, though, via `this._super(...)`) -- that is without specifying exact > parent name (i.e. `super.foo`) which in case of the same method is just again > is the syntactic noise. So it's important thing to have _just_ super(...) -- > if it's a sugar, let it be really the sugar (because if not, why do I need it > at all if I can achieve even better with a library?). And _in addition_ -- > super.otherMethodName notation. For some reason I missed this Ruby-ish notion of super-method calling, which CoffeeScript supports. It is not what the ES.next proposals require for a super-method call. See http://wiki.ecmascript.org/doku.php?id=harmony:classes#member_delegation We should discuss this more concise 'super'-only, not 'super.foo' idea. Is it only for conciseness, or is the fact that it does not support 'super.bar' from within a method named 'foo' important? /be _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss