1

Backbone.js アプリケーションの開発を読んでいます。

once()私が理解していないメソッドの例があります。ここにjsfiddleがあります。実行して、コンソール ログを確認します。2 つの s が出力されることを確認しtrueます。

var TodoCounter = { counterA: 0, counterB: 0 };
_.extend(TodoCounter, Backbone.Events);

// Increment counterA, triggering an event
var incrA = function(){ 
  TodoCounter.counterA += 1; 
  TodoCounter.trigger('event'); // ??? What is this for?
};

// Increment counterB
var incrB = function(){ 
  TodoCounter.counterB += 1; 
};

// Use once rather than having to explicitly unbind
// our event listener
TodoCounter.once('event', incrA);
TodoCounter.once('event', incrB); 

// Trigger the event once again
TodoCounter.trigger('event');

// Check out output
console.log(TodoCounter.counterA === 1); // true
console.log(TodoCounter.counterB === 1); // true

TodoCounter.trigger('event')incrA()何かをしますか?私はそれを削除しましたが、違いはないようです。

この本には、A と B に対して 1 回だけインクリメントする必要があると書かれていTodoCounter.trigger('event')ますincrA()

4

1 に答える 1

1

いいえ、あなたは正しいです、それは何もしません。once()イベントにバインドするためにコールバックが使用されたときに、コールバックが 1 回だけ起動されることを指摘しているだけだと思います。

于 2013-08-06T08:49:09.217 に答える