簡単なアニメーションのコードを組んでいたら、setInterval()でドツボにハマってしまったのでメモ。なんとか朝日が出る前に原因が解った。。 問題のコード var hoge={}; hoge={ prop:123, foo:function() { this.id = setInterval(this.bar, 2000); }, bar:function() { alert(this.prop); // ←コレ } }; hoge.foo(); 上記プログラムを実行するとhoge.foo()が実行され、setIntervalによってさらにhoge.barが2秒毎に定期的に実行されます。 さて、このalert()なんですが、普通に考えると 123 って出力されると思うんですが、ここでの出力結果は undefined です。 そこで、ここのアラートを alert(this); だけにして