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 -~----------~----~----~----~------~----~------~--~---