AFAIKT, your way of super-calling won’t work:
- When starting at the instance you skip the instance’s prototype.
- During each recursive call, you advance one object in the prototype chain. 
That won’t work if a super-method is not in the next object (that is, if there 
are holes in the chain).

Even with adding properties to objects (which is a no-no for ES.next), dynamic 
super is never particularly elegant. This was the best solution I could come up 
with and it’s not pretty: https://gist.github.com/1331748

On Nov 15, 2011, at 13:34 , Dmitry Soshnikov wrote:

> Hi,
> 
> <Just on the Rights of a bike-shedding :)>
> 
> R-proto-class is my quick experiment of yet another class lib for ES5: 
> https://gist.github.com/1366953
> 
> Main features are:
> 
> * Simple super calls (with mentioned before, but modified, "delete-restore" 
> parent link); used only for classes.
> 
> * using Object.create for inheritance (the main part of this lib variant) -- 
> at user-level a programmer uses native Object.create
> 
> * Class.new is a wrapper over Class.allocate and Class.initialize. I.e. 
> overriding <UserClass>.allocate you may allocate different objects
> 
> It's just a lib, it's not proposed for standardization (you may even not to 
> comment on this letter, just take a look for a curiosity); it's just shown 
> again, that in both ES3 and ES5 we had and have lib-versions of such sugar, 
> including good class-level super-calls. So again, if to talk about 
> standardization, then the standardized version (whichever it will be) should 
> be at _least_ much better than all these libs. Including syntactically.
> 
> Cheers,
> Dmitry.
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
> 

-- 
Dr. Axel Rauschmayer
[email protected]

home: rauschma.de
twitter: twitter.com/rauschma
blog: 2ality.com



_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to