javascript - Backbone.js Once()事件方法: counter increment example

标签 javascript backbone.js

我正在阅读Developing Backbone.js Applications .

有一个关于 once() 方法的示例,我不明白。这是jsfiddle 。运行它并查看控制台日志。看到它打印了两个 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

incrA() 中的 TodoCounter.trigger('event') 有什么作用吗?我把它删除了,似乎没有什么区别。

书上说它只应该为 A 和 B 增加一次。我想我明白,除了 incrA() 中的 TodoCounter.trigger('event')

最佳答案

不,你是对的,它不会做任何事情。我相信它只是表明回调仅在使用 once() 将其绑定(bind)到事件时触发一次。

关于javascript - Backbone.js Once()事件方法: counter increment example,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18075498/

相关文章:

javascript - ionic 载玻片不工作

javascript - 如何跟踪 HTML 元素的添加?

javascript - 主干事件未触发?

javascript - 如何防止 javascript/backbone.js 克隆模型共享属性

javascript - 在新窗口中打开页面上的 div,同时保持通过 websocket 更新它的能力

javascript - -ms-transform for IE9 在 JavaScript 中

javascript - Cordova 在后台运行 JavaScript 函数

javascript - 在可滚动的 ionic 内容 View 中使用 ionic 滑动框

javascript - 主干 Marionette 复合 View 渲染

javascript - Backbonejs 在保存成功处理程序中获取 View