BackboneのlistenToとstopListeningについて。
これらを使うと「特定のオブジェクト上で発生したイベントを監視する/監視をやめる」というのを実装することができる。
var listener = _.extend({}, Backbone.Events); var target = _.extend({}, Backbone.Events); listener.listenTo(target, 'event', function (event) { console.log('event happened'); }); target.trigger('event'); // event happened listener.stopListening(); target.trigger('event'); // 何も表示されない
listenerにlisternToを使い、targetの「event」というイベントが発生したら特定の動作を行うようにしている。
第1引数が監視対象、第2引数が監視したいイベント、第3引数に実行する動作を指定する。
そして、stopListeningを実行すると呼び出したオブジェクトに紐付いている監視動作を全て削除する。
イベントの紐付きを解除することはガベージコレクションの関係上メモリリーク対策として重要だそうで。
適切にstopListeningで削除するようにしましょう。