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 の例から、このページでこのコードを見つけました。それらはオブジェクト内で宣言されます。最初の関数が使用されず、2 番目の関数が使用される理由を理解したいと思い.bind(this)
ます。
いつ、なぜ使用する必要があります.bind(this)
か? 使用しても使用しなくても違いはないようです。 の意味はthis
、メソッドが宣言されているオブジェクトを常に参照します (メソッドが見つかった無名関数ではありません)。私は正しいですか?
これらのメソッドはどちらもアクセスthis.editingList
し、どちらの場合も同じ変数を参照しています。