绑定这一个嵌套函数我有一个关于在Underscore.js 的绑定特征的问题,让我们说我们有以下的对象“房间”:与Underscore.js
var person = 'Bob';
$(function() {
var room = {
capacity: 10,
exits: 2,
count: 0,
person: '',
addPerson: function (name) {
this.count += 1;
var nestedFunction = function (nameOfPerson) {
// this is bound to window
this.person = nameOfPerson;
}(name);
}
};
room.addPerson('dave');
});
在在我的评论中指出的那一行,“this”是绑定在窗口上的。这是预期的行为。
比方说,我们要绑定它的“房间”对象。用Underscore.js的bind方法可以做到吗?
注:我知道我可以处理这与老“这=这个”例程。但我对此不感兴趣。
+1但是,'nestedFunction.call'将不起作用,因为IIFE的结果分配给它,而不是函数本身。 – thefourtheye
谢谢@thefourtheye。其实,我已经更新了代码片段,它不再是'IIFE'。该代码位于下面的JSFIDDLE链接中。 –
但OP的代码只有IIFE – thefourtheye