私はコンストラクタを持っていて、そのプロトタイプの中に関数の配列を持っていますが、配列のスコープではなくコンストラクタによって作成されたオブジェクトのスコープを持つ関数が必要です。 .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