バックボーンビューの関数を同じビューの別の関数に渡す必要があります。グローバル関数にはうまく機能する次のアプローチを使用しました。しかし、バックボーン・ビュー・インスタンスが関係している場合、それは機能しません。バックボーン関数をパラメータとして渡す方法
私は、渡された関数のコンテキストが間違っていると考えています。this
は、コンソールに異なるオブジェクトを表示します。
正しく関数を渡し、正しいコンテキストで関数を呼び出す方法はありますか?
//Backbone view
mainFunc: function(){
this.intermediateFunc(this.ABC);
}
intermediateFunc : function(callback){
console.log(this); //prints the correct view
callback();
}
ABC : function(){
console.log(this); //prints 'window' when passed through a function
}
ソリューション - https://jsfiddle.net/sachid/bkopgpfr/7/ – SachiDangalla
'intermediateFunc'は同じオブジェクト(' this.intermediateFunc')の関数であるように思われるので、 'callback.call(this)'で直接コールバックを呼び出すことができます。 –
@EmileBergeron True。私はおそらく、デフォルトの 'context'として' this'を使って 'second'オプションに入れます。 –