我在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);
}
所以我认为我可以立即渲染视图循环完成。但不知何故,this
关键字引用了window
而不是视图。如何指向要查看的预期this
。
答案 0 :(得分:3)
this
设置为window
,因为您正在调用sempurna()
而没有点符号(因此没有任何明确的接收对象)。
要解决此问题,您需要_.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。