1. 程式人生 > >setInterval和setTImeout中的this指向問題

setInterval和setTImeout中的this指向問題

tin 訪問 變量 out cti blog 問題: fun 調用

問題:在setInterval和setTimeout中傳入函數時,函數中的this會指向window對象

解決方法:

1. 將當前對象的this存為一個變量,定時器內的函數利用閉包來訪問這個變量。var self = this;

2.利用bind綁定

setTimeout(function(){
   console.log(this.num);
}.bind(this), 1000) //利用bind()將this綁定到這個函數上

3. 箭頭函數

setTimeout(() => {
    console.log(this.num);
}, 1000)    //箭頭函數中的this總是指向外層調用者

參考:

http://www.cnblogs.com/zsqos/p/6188835.html

setInterval和setTImeout中的this指向問題