The thing is that in JavaScript, all method names are just strings. For
instance:
$.fn.addClass is equivalent to $.fn["addClass"].

And you wouldn't be required to use this, but it would improve certain
situations:

$("div").slideUp("slow", $.callback("slideDown", "slow")) instead of

$("div").slideUp("slow", function() { $(this).slideDown("slow") });

I suppose it'd be a matter of taste, but the $.callback version doesn't look
much stranger to me, and actually has additional elegance, because it avoids
another function wrapper. When using callbacks a lot, the noise of function
wrappers really adds up.

Another example:

$("div").load("someUrl", $.callback("yellowHighlight"));

I think the disconnect here might be that I already think of method names as
strings (because that's how JS looks at them), so this doesn't seem weird at
all; just a way to avoid a bunch of common noise.

-- Yehuda

On Sat, Oct 4, 2008 at 7:56 AM, Cloudream <[EMAIL PROTECTED]> wrote:

>
> I do not like passing a jQuery method name as a string to one special
> method.
>
> A new (and a little strange) usage to jQuery.
>
> On Oct 4, 5:06 am, "Brandon Aaron" <[EMAIL PROTECTED]> wrote:
> > I'd prefer this as well.
> >
> > I think this also helps a few common cases of var self = $(this);
> > --
> > Brandon Aaron
> >
> > On Fri, Oct 3, 2008 at 4:01 PM, Yehuda Katz <[EMAIL PROTECTED]> wrote:
> > > $.callback("addClass", "hello") is ok with me.
> > > -- Yehuda
> >
> > > On Fri, Oct 3, 2008 at 1:58 PM, Ariel Flesler <[EMAIL PROTECTED]>
> wrote:
> >
> > >> Yeah, well. We could provide an interface for registering these
> methods
> > >> for those plugins that are interested. Still, someone could expect a
> method
> > >> to be registered when it's not.
> >
> > >> The other option is to pass the method name as first argument, works
> > >> around this but it loses the I-call-the-analog-method thing.
> >
> > >> On Fri, Oct 3, 2008 at 5:51 PM, Yehuda Katz <[EMAIL PROTECTED]> wrote:
> >
> > >>> The only tricky thing here is that because JS has no method_missing
> or
> > >>> cross-browse __noSuchMethod__, we'd be forced to explicitly write all
> the
> > >>> proxies, which could become messy when they work for core methods,
> but not
> > >>> all plugins.
> > >>> Or maybe I'm just being a nervous nelly.
> >
> > >>> -- Yehuda
> >
> > >>> On Fri, Oct 3, 2008 at 1:46 PM, Ariel Flesler <[EMAIL PROTECTED]
> >wrote:
> >
> > >>>> Note that John's code doesn't do actual currying, but partial
> > >>>> evaluation.
> >
> > >>>>http://en.wikipedia.org/wiki/Partial_evaluation
> >
> > >>>> Currying is a complex concept in comparison to the latter.
> > >>>> Anyway, you can change the name if you want, the idea is simple,
> create
> > >>>> a closure with fixed parameters.
> > >>>> We can name it callback (though it's long)
> >
> > >>>> jQuery("#test").hide("slow", jQuery.callback.show("slow") );
> >
> > >>>> Not to hard to understand IMO, and no CS involved :)
> >
> > >>>> On Fri, Oct 3, 2008 at 5:41 PM, Yehuda Katz <[EMAIL PROTECTED]>
> wrote:
> >
> > >>>>> As in Computer Science.
> > >>>>> Using a currying function requires people new to jQuery to go look
> it
> > >>>>> up, where they'll encounter:
> >
> > >>>>>http://en.wikipedia.org/wiki/Curry
> >
> > >>>>> and probably eventually:
> >
> > >>>>>http://en.wikipedia.org/wiki/Currying
> >
> > >>>>> "Given a function *f* of type [image: f \colon (X \times Y) \to Z],
> > >>>>> then *currying* it makes a function [image: \mbox{curry}(f) \colon
> X
> > >>>>> \to (Y \to Z)]. That is, curry(*f*) takes an argument of type *X*
> and
> > >>>>> returns a function of type [image: Y \to Z].*Uncurrying* is the
> > >>>>> reverse transformation."
> >
> > >>>>> Prototype added features like this to 1.6, and while they're
> > >>>>> interesting and useful, they make it hard for people coming to a
> codebase
> > >>>>> (especially people new to the framework) to understand what's
> happening in
> > >>>>> the code.
> >
> > >>>>> On Fri, Oct 3, 2008 at 1:34 PM, Ariel Flesler <[EMAIL PROTECTED]
> >wrote:
> >
> > >>>>>> CS as in Counter Strike ? :D
> > >>>>>> Heh, no really... what is CS, forgive my ignorance :P
> >
> > >>>>>> On Fri, Oct 3, 2008 at 5:30 PM, Yehuda Katz <[EMAIL PROTECTED]>
> wrote:
> >
> > >>>>>>> Any feature that requires knowledge of CS is a no-go in my book
> :P
> > >>>>>>> -- Yehuda
> >
> > >>>>>>> On Fri, Oct 3, 2008 at 1:27 PM, Ariel Flesler <
> [EMAIL PROTECTED]>wrote:
> >
> > >>>>>>>> Eh, nothing, got it wrong.
> >
> > >>>>>>>> We could just save all these methods on a special object.
> >
> > >>>>>>>> jQuery("#test").hide("slow", jQuery.curry.show("slow") );
> >
> > >>>>>>>> The name could be changed of course.
> >
> > >>>>>>>> Or renamed methods (probably bad option)
> >
> > >>>>>>>> jQuery("#test").hide("slow", jQuery.curriedShow("slow") );
> >
> > >>>>>>>> On Fri, Oct 3, 2008 at 5:14 PM, John Resig <[EMAIL PROTECTED]
> >wrote:
> >
> > >>>>>>>>> > It is indeed. You can't expect parameters though and you
> could
> > >>>>>>>>> get conflict
> > >>>>>>>>> > with the actual parameters sent by the caller.
> >
> > >>>>>>>>> I'm not sure what you're referring to - are you referring to a
> bug
> > >>>>>>>>> in
> > >>>>>>>>> the code? Do you have an example?
> >
> > >>>>>>>>> --John
> >
> > >>>>>>>> --
> > >>>>>>>> Ariel Flesler
> > >>>>>>>>http://flesler.blogspot.com
> >
> > >>>>>>> --
> > >>>>>>> Yehuda Katz
> > >>>>>>> Developer | Engine Yard
> > >>>>>>> (ph) 718.877.1325
> >
> > >>>>>> --
> > >>>>>> Ariel Flesler
> > >>>>>>http://flesler.blogspot.com
> >
> > >>>>> --
> > >>>>> Yehuda Katz
> > >>>>> Developer | Engine Yard
> > >>>>> (ph) 718.877.1325
> >
> > >>>> --
> > >>>> Ariel Flesler
> > >>>>http://flesler.blogspot.com
> >
> > >>> --
> > >>> Yehuda Katz
> > >>> Developer | Engine Yard
> > >>> (ph) 718.877.1325
> >
> > >> --
> > >> Ariel Flesler
> > >>http://flesler.blogspot.com
> >
> > > --
> > > Yehuda Katz
> > > Developer | Engine Yard
> > > (ph) 718.877.1325
> >
>


-- 
Yehuda Katz
Developer | Engine Yard
(ph) 718.877.1325

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to jquery-dev@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to