我有一个构造函数,我试图在其原型中有一个函数数组,但我需要函数来使构造函数创建对象的范围,而不是数组的范围。 我尝试使用.bind(this)或.bind(_p)但是“this”是节点服务器的范围而_p只是没有变量的原型。
function BoardModel() {
this.x = 3
this.y = 2
}
_p = BoardModel.prototype;
_p.skillFunctions = [
function(){
console.log(this.x); //undefined
},
function(){
console.log(this.y); //undefined
},
];
答案 0 :(得分:0)
为什么不为每个属性使用自己的方法,而不是数组?
function BoardModel() {
this.x = 3
this.y = 2
}
_p = BoardModel.prototype;
_p.skillFunctionsX = function (){
console.log(this.x);
};
_p.skillFunctionsY = function (){
console.log(this.y);
};
var item = new BoardModel;
item.skillFunctionsX();
item.skillFunctionsY();

答案 1 :(得分:0)
箭头函数在封闭的上下文中使用它,那么如何(双关语)?
function BoardModel() {
this.x = 3
this.y = 2
this.skillFunctions = [
() => { console.log(this.x) },
() => { console.log(this.y) },
];
}
let board = new BoardModel()
board.skillFunctions.forEach((skillFunction) => { skillFunction() })