function checkBalance() {
return this.balance;
}
function Person(name, balance) {
this.name = name;
this.balance = balance;
}
var me = new Person('tim', 1000);
_.bind(checkBalance, Person);
console.log(checkBalance()); //undefined
我知道这是一个checkBalance应该在Person对象的Prototype上的情况,但是我没能理解为什么bind方法在这里没有正常工作。我已经尝试将Person和我作为_.bind绑定checkBalance的上下文,但我一直都未定义。我在这里发生了什么,我未定义这个?
答案 0 :(得分:3)
bind(func, obj)
返回与func
相同的新函数,但函数内部的this
将引用obj
。
您将this
函数中的checkBalance
绑定到Person
函数,似乎您的意思是将this
绑定到me
试试这个:
var f = _.bind(checkBalance, me);
console.log(f()); //1000
或者,重新分配到同一个功能:
checkBalance = _.bind(checkBalance, me);
console.log(checkBalance()); //1000