我在 Backbone.view 中扩展了这个功能
toggle: function () {
var sempurna = _.after(array_obj.length, this.render);
_.each(array_obj, function (v,k) {
v.perormSomething();
delete array_obj[key];
sempurna();
}, this);
}
所以我认为我可以在循环完成后立即渲染 View 。但不知何故, this
关键字引用的是 window
而不是 View 。如何指向想要查看的 this
。
最佳答案
this
设置为 window
因为您在调用 sempurna()
时没有点符号(因此没有任何显式接收对象)。
要解决此问题,您需要将 _.bind
(或使用浏览器 native 绑定(bind)(如果可用))您的 sempurna
到 this
:
toggle: function () {
var sempurna = _.bind(_.after(array_obj.length, this.render), this);
_.each(array_obj, function (v,k) {
v.perormSomething();
delete array_obj[key];
sempurna();
}, this);
}
演示 JSFiddle .
关于backbone.js - _.: a confuse with context之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24099810/