r-proto-class

Jake Verbaten raynos2 at gmail.com
Tue Nov 15 05:34:09 PST 2011


You fell for the broken super implementation trap<http://jsfiddle.net/Wtx3E/1/>

Your calling super methods with a value of `this` that has references to
methods you don't expect it to have. i.e. if any sub class shadows a method
of a super class, then every reference to method invocation in the super
class will invoke the method of the sub class rather then the method of the
class itself.

super is not a beast you can implement trivially in ES. I actually
have a stackoverflow
question<http://stackoverflow.com/questions/8032566/emulate-super-in-javascript>about
super.

You can't actually implement super without hard coupling a reference
between Parent and Child. inheriting a generic super method from a
prototype won't work as far as I know.

On Tue, Nov 15, 2011 at 12:34 PM, Dmitry Soshnikov <
dmitry.soshnikov at gmail.com> 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 <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
> es-discuss at mozilla.org
> https://mail.mozilla.org/**listinfo/es-discuss<https://mail.mozilla.org/listinfo/es-discuss>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20111115/9654994b/attachment.html>


More information about the es-discuss mailing list