Referencing `super`

Rick Waldron waldron.rick at
Wed Aug 6 06:14:17 PDT 2014

On Wednesday, August 6, 2014, Brendan Eich <brendan at> wrote:

> Rick Waldron wrote:
>> On Tuesday, August 5, 2014, Domenic Denicola <domenic at
>> <mailto:domenic at>> wrote:
>>     I sympathize; I have always found the fact that bare `super()`
>>     works to be confusing.
>> When a bare super() call appears in a method (whether constructor or not)
>> it can only have _one_ _meaning_ and that's a call to a method of the same
>> name in the parent class. This isn't particularly innovative: John Resig's
>> Simple JavaScript Inheritance[0]—arguably one of the most widely used (many
>> clones, forks and spin-offs exist) "abstract class" techniques—provides
>> `this._super()` which does the same thing that ES6 super() does. This
>> pattern existed before and has been repeated throughout many libraries that
>> have stood out over the years: Prototype, Dojo, Ext.js and certainly
>> others. CoffeeScript implements super() this way as well.
> CoffeeScript imitated Ruby here.

Yep, and probably the other quasi-super APIs I mentioned as well—that was
in my follow up message.


> Smalltalk had super rather than self sends, but you had to send with the
> full selector (think method name). Java has super() in constructors but
> requires super.method() in methods. I'm cool with super() in methods, I
> forgot we disallowed naked `super`, and my gut says we would support it as
> equivalent to `this`.
> /be
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list