setTimeout('func()', t);
等だと第一引数のfuncはグローバルオブジェクトから呼ばれるので、
任意の関数の設定に手こずった。
setTimeout('this.func()', t);
と書いてもthis参照が書いたところと変わってしまうので
意味なかった。
#解決法
setTimeout(function(){
func();
}, t);
と書いたらこいつを書いたスコープからfunc()が呼ばれた。
正直理由はよくわかってないので後で調べたい(クロージャ?)。
thisは参照先が第一引数の匿名関数オブジェクトになってるようなので使えなかった。
JavaScriptの名前空間やスコープはしょっちゅうわけわからなくなる。