このjsFiddleを見てください
コードも以下に示します。
window.MyView = Backbone.View.extend({
ticks: 0,
initialize: function() {
//window.setInterval(this.onTimerTick, 1000); // arghhh.. can't understand the 'this' scoping
window.setInterval(this.onTimerTick2, 1000); // Works great with globals
},
render: function() {
this.$el.text(this.ticks);
},
onTimerTick: function() { // Trouble with this
this.ticks++;
this.render();
},
onTimerTick2: function() { // Using globals
window.ticks2++;
$('#count').text(window.ticks2);
}
});
window.My = new MyView({ el: $("#count") });
window.ticks2 = 0;
コードを見ると、onTimerTick 関数を使用したいことがわかりますが、window-this から My-this に到達する方法がわからないため、onTimerTick2 に見られるアプローチを使用する必要があります。(通常、私は that=this で回避しますが、この場合は十分ではありません)
私にこれを理解させようとしてくれてありがとう(!)
ありがとう
ラルシ