我有一個對象像這樣:'this'(內部方法)不會引用原始對象嗎?
let game = {
canvas: document.getElementById('main_canvas').getContext("2d"),
clear: function(){
this.canvas.clearRect(0,0,400,400);
},
update: function(){
this.clear();
//more code
},
};
在我明確的方法一切正常使用「這個」指的是「遊戲」,但是當我在它不是指的「更新」的方法用「這個」到'遊戲'?當我使用game.clear();一切正常,但'這'我得到undefined。如果有人知道這個原因,請發表回覆。我最近了解了對象並知道箭頭函數不會給出'this',但認爲像上面那樣的匿名函數可以讓我引用'父'或owner對象。
你正在使用'this'是你應該構造函數使用它(當您通過調用與'new'功能使對象的實例)的方式,而不是靜態對象文本的方式。 –
'this'的值取決於函數的調用方式。所以告訴我們如何調用'game.update'。可能是[如何在回調中訪問正確'this'的副本?](https://stackoverflow.com/q/20279484/218196) –
您還應該閱讀[「this」關鍵字如何工作?]( https://stackoverflow.com/q/3127429/218196),https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this和https://github.com/getify /你不知道JS/tree/master/this%20%26%20object%20原型 –