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