javascript中setTimeout的問題解決方法_javascript技巧
來源:懂視網
責編:小采
時間:2020-11-27 21:22:48
javascript中setTimeout的問題解決方法_javascript技巧
javascript中setTimeout的問題解決方法_javascript技巧:看到一個問題,大概是這個樣子得。 代碼如下: name = 'out of you' foo = function(){ this.name = 'xxoo'; } foo.prototype.say = function(){ console.log(this.name); } f = new foo(); f.say(); // 這
導讀javascript中setTimeout的問題解決方法_javascript技巧:看到一個問題,大概是這個樣子得。 代碼如下: name = 'out of you' foo = function(){ this.name = 'xxoo'; } foo.prototype.say = function(){ console.log(this.name); } f = new foo(); f.say(); // 這

看到一個問題,大概是這個樣子得。
代碼如下:
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是在調用的時候產生的,還跟上下文有關。這么解決呢。我測試了一下,用了call。
代碼如下:
setTimeout.call(foo(), f.say, 500)
網上的一些解決方法
js中setTimeout的this指向問題
JavaScript中使用Timer
最后其實還是對this得理解問題。
哪天搞得明白點了再繼續寫
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
javascript中setTimeout的問題解決方法_javascript技巧
javascript中setTimeout的問題解決方法_javascript技巧:看到一個問題,大概是這個樣子得。 代碼如下: name = 'out of you' foo = function(){ this.name = 'xxoo'; } foo.prototype.say = function(){ console.log(this.name); } f = new foo(); f.say(); // 這