這篇文章主要介紹了javascript中setTimeout的問題以及對應的解決方法,需要的朋友可以參考下
看到一個問題,大概是這個樣子得。
代碼如下:
name = 'out of you'
foo = function(){
this.name = 'xxoo';
}
foo.prototype.say = function(){
console.log(this.name);
}
f = new foo();
f.say(); // 這句會輸出xxoo
setTimeout(f.say, 500); // 這句會輸出out of you
這是個坑,javascript的this是在調用的時候產(chǎn)生的,還跟上下文有關。這么解決呢。我測試了一下,用了call。
代碼如下:
setTimeout.call(foo(), f.say, 500)
網(wǎng)上的一些解決方法
js中setTimeout的this指向問題
JavaScript中使用Timer
最后其實還是對this得理解問題。
更多信息請查看IT技術專欄