var TwitterListModel = function (lists, selectedList) {
// [...]
this.addUser = function () {
if (this.userNameToAdd() && this.userNameToAddIsValid()) {
this.editingList.userNames.push(this.userNameToAdd());
this.userNameToAdd("");
}
};
this.removeUser = function (userName) {
this.editingList.userNames.remove(userName)
}.bind(this);
// [...]
}
我在这个页面的 Knockout JS 示例中找到了这段代码。它们在对象内部声明。我想了解为什么第一个函数不使用.bind(this)
而第二个函数使用。
何时以及为什么需要使用.bind(this)
?看起来我是否使用它没有任何区别: 的含义this
始终指的是声明方法的对象(而不是找到它的匿名函数)。我对吗?
这两种方法都可以访问this.editingList
并且它们在两种情况下都引用相同的变量。