我在一個回傳一個方法的類上創建了一個 getter 欄位,該方法通過一些輸入進行呼叫。這是方法:
private gainItem(rewardItem: Item) {
console.log(this);
//Give item to user
}
這是包含此方法的類上的 getter 欄位:
private get npcPlayerInterface(): NpcPlayerInterface {
return {
gainItem: this.gainItem,
};
}
然后我將 getter 傳遞給另一個類,如下所示:
this.npcChatState = new NpcChatState(this.npcPlayerInterface);
最后,這是在npcChatState類中呼叫它的方式:
npcPlayerInterface.gainItem({ id: ItemId.CAR_BLUE, name: 'Blue CAR' });
該console.log(this)陳述句顯示this關鍵字指的是另一個物件,而不是我想要的物件。如何在不使用bind()或 this-alias 的情況下解決這個問題?
uj5u.com熱心網友回復:
只需使用箭頭語法:
private gainItem = (rewardItem: Item) => {
console.log(this);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/392702.html
標籤:打字稿 javascript对象 这 这个关键字
上一篇:反應和打字稿動態網格調整大小
