我正在进行的当前项目是创建一个跳棋游戏。
我使用了函数构造函数模式,并且我在其中一个构造函数的原型上设置了一个函数。
我的问题是,this
关键字指向全局对象而不是函数的调用者。
如何将this
设置为该函数的调用者?
function Piece(x, y, side) {...}
Piece.prototype.getPossibleMoves = () => {
let possibleMoves = [];
console.log(this); // returns global object
if (this.isKing) {
...
} else {
...
}
return possibleMoves;
}
// Testing
const king = new Piece(5, 5, "bottom");
king.isKing = true;
console.log(king.getPossibleMoves());
这样我想要的功能就是
somePiece.getPossibleMoves()
而不是
Piece.getPossibleMoves(somePiece);
我可以实施,但宁愿选择第一,因为它感觉更优雅。
问题是箭头函数表达式“(请参考与常规函数表达式和语句相同的方法!