イベントハッシュを使用してBackbone.View
、スコープの問題を回避できます(ここのドキュメントを参照)。次のようなもの:
events: {
'slidestop #slider-fill': 'handleSlideStop'
},
handleSlideStop: function() {
// Not sure where size param is coming from, but assuming
// you can set it as a property of the view somewhere.
console.log('Size', this.size);
}
もう1つの方法は、アンダースコアのbindメソッドを使用することです。これにより、ビュー内の名前付き関数にコールバックを委任し、呼び出されるスコープを指定できます。これは次のようになります。
registerSliderControlEvents: function(){
$("#slider-fill").on('slidestop', _.bind(this.myFunction, this));
},
myfunction: function(size){
//....some code
}
that
スコープの問題に頼ったり解決したりする必要があるときは、いつも少し汚れていると感じself
、可能であればそれを避けようとします。しかし、私はJavaScriptにかなり慣れていないので、おそらくJavaScriptを必要な悪として受け入れる必要があります;)