setTimeout()の第一引数調査

Posted by dab | 2011年8月11日 木曜日 15:24:14 < コンピュータ >

以前setTimeout()の第一引数を、文字列にするか関数オブジェクトにするかの違いをちょっと書いたけど、
その調査のその後。

オブジェクトに付随するメソッドを呼び出すときにthisがオブジェクトそのものになるか(第一引数を文字列にしたとき)、
windowになる(第一引数をオブジェクトにしたとき)かの違いがありました。


setTimeout('obj.func()', 1000);
→ obj.funcの中でthisはobjを指す。


setTimeout(obj.func, 1000);
→ obj.funcの中でthisはwindowを指す。
そのため、
obj.prop='hello';としておいて、obj.func()からthis.propを参照しても、obj.propの意味にならない。

http://home.wi-wi.jp/lab/00l/
実験室の方でコードサンプルを書いています。

TrackBack URI : https://home.wi-wi.jp/blog/wp-trackback.php?p=573

Leave a comment

:mrgreen: :neutral: :twisted: :shock: :smile: :???: :cool: :evil: :grin: :oops: :razz: :roll: :wink: :cry: :eek: :lol: :mad: :sad: