我一直在看一些基于backbone.js的应用程序的例子.我注意到在某些(例如下面这个例子)中使用了下划线函数_.bindAll():
initialize: function (args) {
_.bindAll(this, 'changeTitle');
this.model.bind('change:title', this.changeTitle);
},
Run Code Online (Sandbox Code Playgroud)
而在其他情况下(例如下面的todo应用程序)不要:
initialize: function() {
this.model.bind('change', this.render, this);
this.model.bind('destroy', this.remove, this);
},
Run Code Online (Sandbox Code Playgroud)
_.bindAll()在这种情况下,目的是什么,是否有必要?
sci*_*shi 26
_.bindAll()变化this在命名函数总是指向的对象,这样就可以使用this.model.bind().请注意,在第二个示例中,第三个参数传递给bind(); 这就是为什么_.bindAll()在这种情况下不必使用.一般来说,最好使用模型上的任何方法,这些方法将用作事件的回调,以便您可以this更轻松地引用.
| 归档时间: |
|
| 查看次数: |
16118 次 |
| 最近记录: |