首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript绑定函数到对象

Javascript绑定函数到对象
EN

Stack Overflow用户
提问于 2017-07-04 09:47:11
回答 2查看 36关注 0票数 0
const person = {
    name: "Mike",
    country: "New Zealand"
}

function personUpdate(name, country) {
    this.name = name
    this.country = country
}

personUpdate.bind(person)

personUpdate('Tony', 'Chile')

为什么这个不起作用?person仍然有原始的属性‘迈克’和‘新西兰’。为什么不这样做呢?我想让每次调用personUpdate.bind(person) personUpdate时,this都会引用person对象(而不使用new)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-04 09:50:51

调用.bind不会修改您传入的函数;它会返回一个新的绑定函数。

所以你想要哪一个:

var boundPersonUpdate = personUpdate.bind(person);
boundPersonUpdate(...); // call the bound version

或者:

personUpdate = personUpdate.bind(person); // overwrite the original function
票数 2
EN

Stack Overflow用户

发布于 2017-07-04 10:05:12

我已经试过你的代码了,我想它没什么问题。

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');

我试着打印它,它给了我“托尼”和“智利”,还是我误解了你的问题?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44895792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档