const person = {
name: "Mike",
country: "New Zealand"
}
function personUpdate(name, country) {
this.name = name
this.country = country
}
personUpdate.bind(person)
personUpdate('Tony', 'Chile')
为什么不起作用?
person
仍具有原始属性“ Mike”和“ New Zealand”。为什么不personUpdate.bind(person)
我要创建它,以便每次对personUpdate
this
的调用都引用person
对象(并且不使用new
)。 最佳答案
调用.bind
不会修改您传入的函数;它返回一个新的绑定函数。
所以你想要:
var boundPersonUpdate = personUpdate.bind(person);
boundPersonUpdate(...); // call the bound version
要么:
personUpdate = personUpdate.bind(person); // overwrite the original function