我有一個構造函數,並試圖在其原型中有一個函數數組,但我需要的函數有構造函數創建的對象的範圍,而不是數組的作用域。 我試過使用.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