有以下代碼。如何在嵌套方法內引用對象
object.waypoint=function() {
this.uw=setInterval(function() {
console.log(this);
}, 200);
}
怎麼辦我指的是「對象」三線之內的功能,我用「這個」關鍵字,但它似乎並沒有參考對象嘗試過。
有以下代碼。如何在嵌套方法內引用對象
object.waypoint=function() {
this.uw=setInterval(function() {
console.log(this);
}, 200);
}
怎麼辦我指的是「對象」三線之內的功能,我用「這個」關鍵字,但它似乎並沒有參考對象嘗試過。
裏面setInterval this
指向窗口。您需要製作一個參考this
的變量。
object.waypoint=function() {
var me = this;
this.uw=setInterval(function() {
console.log(me);
}, 200);
}
的常用方法是向this
參考存儲在一個變量,你則可以用它來獲得訪問到正確的this
:
object.waypoint=function() {
// Keep a reference to this in a variable
var that = this;
that.uw=setInterval(function() {
// Now you can get access to this in here as well through the variable
console.log(that);
}, 200);
}
我覺得bind
是一個整潔的解決方案 - 它沒有在所有瀏覽器中實現,但有workarounds。
object.waypoint = function(){
this.uw = setInterval(function(){
console.log(this);
}.bind(this), 200);
}
見MDN page爲適當的文件
謝謝!我已經嘗試過,但沒有插入「var」關鍵字,這個工作。 :) –
@ Otto-VilleLamminpää如果您發現問題的解決方案,請接受答案。 – andlrc