Quick question:

Is there a legitimate reason other than writing less code for chaining
methods? Specifically, is there a performance advantage other than
overall site performance thanks to download speeds as a consequence of
less code?

In the example I have:

        this.element = new Element("div");
        this.element.addClassName( this.settings.className );
        this.element.absolutize();
        this.element.hide();

and I know I can write this like so:

        this.element = new Element("div",
{"class":this.settings.className}).absolutize().hide();

but was wondering about the benefit. I don't like chaining too many
methods b/c after a certain point I find them difficult to read but I
will if there's a good reason for it.

PS: I'm trying to avoid doing the multiline chaining:

        this.element = new Element("div",{"class":this.settings.className})
                                        .absolutize()
                                                .hide();

Thanks!

On Jun 5, 12:27 am, Luisgo <lgo...@gmail.com> wrote:
> Great tips! Thanks.
>
> I've made changes 1 and 2 as suggested and left the callbacks scoped
> under this.settings (I think I do this so calling those methods sounds
> better in my head - ie: modal.onBeforeClose() clearly refers to modal,
> modal.settings.onBeforeClose() sounds weird - I have a problem... I
> know :)).
>
> I left out the observer altogether to keep it simple and focused. I
> can simply use documentation to let others know how to apply the
> observers.
>
> Thank you very much for your input.
>
> Luis
>
> On Jun 4, 8:54 pm, Andrew Dupont <goo...@andrewdupont.net> wrote:
>
>
>
> > On Jun 4, 2009, at 8:36 PM, Luisgo wrote:
>
> > > 1. Is there a better way to handle callback definition? See lines
> > > 7-11.
>
> > You've got the right idea here. I'd use `Prototype.emptyFunction`  
> > instead because there's no reason to define more than one empty  
> > function, but this is of negligible importance.
>
> > > 2. Is there a better way of referring to "body"? See line 33.
>
> > `$(document.body)` would be more concise. Works in all browsers I'm  
> > aware of.
>
> > > 3. Is there a better way of "injecting" callbacks into functions so I
> > > don't have to clutter methods like "on" and "off"? See lines 81, 91,
> > > 98, 108.
>
> > You seem reluctant to keep them on the `settings` object — why? Only  
> > difference is that you'd call `this.settings.onBeforeOpen()` instead.  
> > Scope would be preserved.
>
> > A _different_ approach to callbacks would be to use custom events — to  
> > fire "modal:opened:before" and "modal:opened:after" (etc.) — but there  
> > are pros and cons for each.
>
> > > 4. Is there a way to use prototype classes that take an element as
> > > extensions to such element? Meaning, I would like to be able apply a
> > > "click" observer to the instance of the class directly. Something
> > > like:
>
> > >  `modal.observe("click", someHandler)`
>
> > > and have that passed to the element to which the class is applied to.
> > > In the class: `this.element` or in this example `modal.element`
>
> > No, but if you wanted that sort of thing, you could write your own  
> > `observe` method which passed all its arguments to  
> > `modal.element.observe`.
>
> > Cheers,
> > Andrew
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to