Hi Richard, Thanks for that.
I like the terseness and clarity of this.base() although I'd have concerns about that making it difficult for people to retrofit their classes ("base" being a fairly common word). I do _not_ mean that I think "callSuper" is a great name; I don't and I expect suggestions like yours to result in a better name. But something unlikely to clash makes it simpler for people to do a global search-and-replace to convert $super(...) to this.niftyNameHere(arguments, ...). Even in a large project, that should be a 10-minute exercise. Agreed that both mechanisms can co-exist, except that I -- perhaps unreasonably -- find running all of the subclass methods through Function#toString at definition time ugly. But you're right, once deprecated the old $super could be supported for a dot rev or so to ease transition. I meant to mention in my earlier post that once implementations have a native Function#bind (which I'm sure everyone knows is in the latest ECMA draft specs), presumably the cost of that bind-on-each-method- call would go down, though I suspect it will never reduce to zero. -- T.J. Crowder tj / crowder software / com www.crowdersoftware.com On Sep 4, 1:53 pm, Robert Kieffer <bro...@gmail.com> wrote: > Hey gang, > > I took a look at this issue a while ago, in a blog post that generated a > fair bit of discussion and spin off investigations > (seehttp://www.google.com/search?q=inheritance+performance+javascript) so I'll > try to weigh in. However I'm in the middle of an extended road trip, so I > don't have the time/resources necessary to give this proper attention... > > http://ejohn.org/blog/simple-javascript-inheritance- JQ's swipe at this > problem. Definitely read through the comments. Your approach appears > similar to his (which is based on Dean Edward's Base2). Dean uses > this.base(), instead of this.callSuper(), fwiw. no strong opinions there, > although this.base() seems a bit more "prototype-like" in it's terseness. > > The performance tests I did for Base2 (see the broofa.com article in the > google search above) are probably a good first-guess at the performance your > approach will have compared to other techniques. > > Technically this doesn't break backward compatibility - $super and > this.callSuper() can coexist as dual techniques for doing inheritance, > correct? We just need to decide if $super support will continue in P2. > > ... and, finally, I vaguely recall people raising some interesting edge > cases. But I don't remember where I saw those. *sigh*. > > - rwk --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Prototype: Core" group. To post to this group, send email to prototype-core@googlegroups.com To unsubscribe from this group, send email to prototype-core-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/prototype-core?hl=en -~----------~----~----~----~------~----~------~--~---