Thanks bob, I guess it's been about 8 years. Good to talk to you again.
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.
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.
Ian
2007/12/21, Bob Ippolito <[EMAIL PROTECTED]>:
>
> On 12/20/07, Ian Lewis <[EMAIL PROTECTED]> wrote:
> > Is it intentional that the callLater() function causes the 'this'
> reference
> > to get scrapped?
>
> Has nothing to do with MochiKit, JavaScript doesn't have bound methods
> like Python does. The binding of "this" is done by the method call
> syntax. It would be impossible to preserve it unless the function was
> wrapped.
>
> See MochiKit.Base.{bind,method,bindMethods} for the typical workarounds,
> also:
> http://bob.pythonmac.org/archives/2005/07/06/this-sucks-in-javascript/
>
> -bob
>
--
Ian Lewis
[EMAIL PROTECTED]
http://www.ianlewis.org
--
ルイス イアン
ソートス株式会社
〒101-0047
東京都千代田区内神田1丁目3番1号高砂ビル9階
TEL : 03-5577-0800
FAX : 03-5259-0880
E-Mail: [EMAIL PROTECTED]
URL : http://www.thought-s.co.jp
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"MochiKit" group.
To post to this group, send email to [email protected]
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
-~----------~----~----~----~------~----~------~--~---