Backbone.js 中的 bind() 和 on() 方法有什么区别
on() 的文档:backbone.js 中的方法文档
bind() 的文档:underscore.js 中的绑定方法文档
两者中的哪一个应该用于绑定对象的自定义事件?
使用示例:
this.bind('myEvent', this.render, this);
this.on('myEvent', this.render, this);
Backbone.js 中的 bind() 和 on() 方法有什么区别
on() 的文档:backbone.js 中的方法文档
bind() 的文档:underscore.js 中的绑定方法文档
两者中的哪一个应该用于绑定对象的自定义事件?
使用示例:
this.bind('myEvent', this.render, this);
this.on('myEvent', this.render, this);
this.bind('myEvent', this.render, this);
this.on('myEvent', this.render, this);
bind
这些是完全等价的,并且与下划线函数无关。
这是来自Backbone 源代码的一些代码:
// Aliases for backwards compatibility.
Events.bind = Events.on;
Events.unbind = Events.off;
因此,在代码的两行中,您都调用了相同的函数。
下划线中的 _.bind 与 Backbone 事件对象中的绑定无关。(或下划线)
下划线中的 _.bind 用于将函数绑定到上下文(将其包装在闭包中)。因此,当调用该函数时,上下文 (this) 不会改变。
Backbone 文档明确指出事件中的 bind 方法是 on 方法的别名。那么为什么要链接到下划线中的绑定定义呢?