我在一个返回方法的类上创建了一个 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()
或此别名的情况下解决此问题?