Backbone.js中的bind()和on()方法有什么区别
on()的文档:On method documentation at backbone.js
bind()的文档:Bind method documentation at underscore.js
应该使用哪两个来绑定对象的自定义事件?
用法示例:
this.bind('myEvent', this.render, this);
this.on('myEvent', this.render, this);
答案 0 :(得分:15)
this.bind('myEvent', this.render, this);
this.on('myEvent', this.render, this);
这些完全等效,与下划线bind
函数无关。
以下是Backbone source的一些代码:
// Aliases for backwards compatibility.
Events.bind = Events.on;
Events.unbind = Events.off;
因此,在代码的两行中,您调用的是相同的函数。
答案 1 :(得分:3)
_。下划线绑定与Backbone事件对象中的绑定无关。 (或下划线)
当您想要将函数绑定到上下文(将其包装在闭包中)时,使用_。下划线中的bind。所以当调用函数时,上下文(this)不会改变。
Backbone文档明确说明事件中的bind方法是on方法的别名。那么为什么要链接到下划线中的绑定定义?