[dojo-contributors] dojo.lang.inherits

Tom Trenka ttrenka at gmail.com
Thu Apr 6 01:14:49 EDT 2006


+1 on delegate; it's the correct term for the JS inheritance model as it
is.  The functionality Scott's looking for is like an enhanced version of
that anyways...

On 4/5/06, Bill Keese <bill at dojotoolkit.org> wrote:
>
> I understand the point, but "delegate" sounds like something with
> events.  I'm still voting for defineClass (analogous to defineWidget):
>
> >> dojo.defineClass(subclass, superclass, { constructor: ..., param1:
> >> ..., func1: ... });
>
> +1
>
> Alex Russell wrote:
> > To address Jesse's point, how about a name like:
> >
> >       dojo.delegate(subclass, superclass, { ... });
> >
> > ?
> >
> > On Wednesday 05 April 2006 5:33 pm, Scott J. Miles wrote:
> >> dojo.defineClass(subclass, superclass, { constructor: ..., param1:
> >> ..., func1: ... });
> >>
> >> +1
> >>
> >> Regards,
> >> Scott J. Miles
> >> TurboAjax Group
> >> http://www.turboajax.com
> >>
> >> -----Original Message-----
> >> From: dojo-contributors-bounces at dojotoolkit.org
> >> [mailto:dojo-contributors-bounces at dojotoolkit.org] On Behalf Of Bill
> >> Keese Sent: Wednesday, April 05, 2006 5:25 PM
> >> To: dojo dev.
> >> Subject: Re: [dojo-contributors] dojo.lang.inherits
> >>
> >>>> 2. there is no separation between constructor initialization and
> >>>> instance initialization.
> >> The suggestion is something similar to this, right?
> >>
> >> dojo.inherits(subclass, superclass, fnInit); dojo.extends(subclass, {
> >> param1: ..., func1: ... } );
> >>
> >> (where fnInit is the constructor in the java sense of the word)
> >>
> >> This is really abusing the meaning of "inherit".  Wouldn't it be
> >> better to combine these two functions into one function like this?
> >>
> >> dojo.defineClass(subclass, superclass, fnInit,
> >>   { param1: ..., func1: ... });
> >>
> >> As a matter of fact, Alex has already done this for widgets (see
> >> http://archive.dojotoolkit.org/nightly/src/widget/Dialog.js )
> >>
> >> PS: alternately you could use this syntax:
> >>
> >> dojo.defineClass(subclass, superclass,
> >>      { constructor: ..., param1: ..., func1: ... });
> >>
> >>> I'd be interested in your thoughts on this:
> >>>
> >>> http://dean.edwards.name/weblog/2006/03/base/
> >>>
> >>> I wrote it to alleviate some of the problems you refer to below.
> >>>
> >>> -dean
> >> Yeah, there was some discussion about this and some objections about
> >> not staying true to javascript, but I didn't really understand it.
> >> (The current dojo stuff is just a thin wrapper on top of javascript
> >> and people wanted to keep it that way, but not sure why.  Maybe just
> >> philosophical reasons.) Hopefully someone can explain in more detail.
> >>
> >> Bill
> >>
> >>> On 5 Apr 2006, at 23:51, Scott J. Miles wrote:
> >>>
> >>> At the Dojo meeting today (4/5/2006), dojo.inherits came up and we
> >>> agreed to open up the discussion to the general contribs list.
> >>>
> >>> There are two (arguable) faults in the dojo.inherits
> >>> implementation:
> >>>
> >>> 1. invoking super class methods is wordy and inconvenient.
> >>> 2. there is no separation between constructor initialization and
> >>> instance initialization.
> >>>
> >>> There is general agreement that we want to 'let JS be JS'.
> >>>
> >>> With regard to (2), my personal opinion is that JS doesn't have an
> >>> axe to grind with respect to initialization, and there is nothing
> >>> un-JS about supporting a systemic instance initialization function
> >>> (that is to say, a standard way of specifying an instance
> >>> initializer).
> >>>
> >>> Alex seemed right-away to have an idea of how tweak dojo.inherits
> >>> to add such a feature (yay). We briefly discussed adding additional
> >>> parameters to inherits vs. a key-word style signature. I prefer the
> >>> former, but there was no general agreement.
> >>>
> >>> There was some talk about the term 'inherits' implying a non-JS
> >>> idiom, but this is not a problem IMO. Any suggestions for new
> >>> nomenclature are appreciated.
> >>>
> >>> Re (1), nobody seemed to have a handle on how to make calling
> >>> inherited/parent/base-class methods easier. Morris has developed
> >>> his own inheritence system that may provide a solution.
> >>>
> >>> Thanks for listening. :)
> >>>
> >>> Regards,
> >>> Scott J. Miles
> >>> TurboAjax Group
> >>> http://www.turboajax.com
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > dojo-contributors mailing list
> > dojo-contributors at dojotoolkit.org
> > http://dojotoolkit.org/mailman/listinfo/dojo-contributors
> _______________________________________________
> dojo-contributors mailing list
> dojo-contributors at dojotoolkit.org
> http://dojotoolkit.org/mailman/listinfo/dojo-contributors
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.dojotoolkit.org/pipermail/dojo-contributors/attachments/20060406/e978eda5/attachment.htm 


More information about the dojo-contributors mailing list