我有一个构造函数,并试图在其原型中有一个函数数组,但我需要的函数有构造函数创建的对象的范围,而不是数组的作用域。 我试过使用.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
},
];
如果您想要将这些函数用于通过构造函数创建的任何对象,那么为什么不只是将对象引用传递给它们呢? – Azamantes
你的意思是每当我调用任何函数来传递对象作为参数?这是可能的,我猜,希望有一个更自然的解决方案。 – Fuseques
©Maayan Blum您可以像其他任何方法一样将这些函数添加到原型中,并在原型(或创建的对象,如果需要定制)上拥有一个包含要调用的函数名称数组的属性。然后你只需迭代数组并调用方法,如'this [methodName]();' – Azamantes