On 12/20/07, Ian Lewis <[EMAIL PROTECTED]> wrote:
> Thanks bob, I guess it's been about 8 years. Good to talk to you again.

High school feels a lot longer ago than that :)

> Tricky. I suppose you would run into this pretty much any time you pass
> around foo.bar when bar bound (or not) to the object foo as you wouldn't be
> able to do the "call with this" syntax. If your blog post is right then it
> looks like the only way to do "call with this" explicitly calling the
> function via the object in code.

Welcome to JavaScript.

That's pretty much what bind does, but Function.prototype.call and
Function.prototype.apply let you jigger "this" for a given call.

foo.bar(a, b) is the same as foo.bar.apply(foo, [a, b]) or
foo.bar.call(foo, a, b).

> Anyway, changing the test code to
>
>  test.init = function() {
>    createLoggingPane(true);
>    callLater(3.0, bind(test.myfunc, test));
>  }
>
> works. It's cute how bind returns a function that calls your function but
> goes out and finds the "this" for you first. Pretty useful hack.

Well you give it 'this' as the second argument, it doesn't do all that
much magic.

bind(test.myfunc, test) is equivalent to function () { return
test.myfunc.apply(test, arguments); }

-bob

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

Reply via email to