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
的{{1}}每次调用都会引用person
对象(而不使用new
)。
答案 0 :(得分:2)
调用.bind
不会修改您传入的功能;它返回一个新的绑定函数。
所以你想要:
var boundPersonUpdate = personUpdate.bind(person);
boundPersonUpdate(...); // call the bound version
或:
personUpdate = personUpdate.bind(person); // overwrite the original function
答案 1 :(得分:0)
我已经尝试过你的代码,我认为没有任何问题。
const person = {
name: "Mike",
country: "New Zealand"
}
function personUpdate(name, country) {
this.name = name;
this.country = country;
console.log(this.name);
console.log(this.country);
}
personUpdate.bind(person);
personUpdate('Tony', 'Chile');
我试图打印它,它正在给我" Tony"和#34;智利",或者我误解了你的问题?