骨架中绑定和打开之间的区别

时间:2013-04-07 17:00:33

标签: javascript backbone.js bind underscore.js event-binding

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);

2 个答案:

答案 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方法的别名。那么为什么要链接到下划线中的绑定定义?

http://backbonejs.org/#Events-on