LoginSignup
1
0

More than 5 years have passed since last update.

[JavaScript]SetTimeout関数の第一引数に渡す関数

Last updated at Posted at 2016-08-30
setTimeout('func()', t);

等だと第一引数のfuncはグローバルオブジェクトから呼ばれるので、
任意の関数の設定に手こずった。

setTimeout('this.func()', t);

と書いてもthis参照が書いたところと変わってしまうので
意味なかった。

解決法

setTimeout(function(){
   func();
}, t);

と書いたらこいつを書いたスコープからfunc()が呼ばれた。
正直理由はよくわかってないので後で調べたい(クロージャ?)。
thisは参照先が第一引数の匿名関数オブジェクトになってるようなので使えなかった。

JavaScriptの名前空間やスコープはしょっちゅうわけわからなくなる。

1
0
8

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0