gpt4 book ai didi

javascript 通过其他 javascript 对象的一个​​对象方法

转载 作者:行者123 更新时间:2023-12-02 14:37:04 25 4
gpt4 key购买 nike

var s = {

fname:'Ashish',

lname:'Gokhale',

getFullName: function(){
return this.fname +' '+ this.lname;
}

}

var p = {fname: "Xyz", lname: "Abc"};

上面是我的两个 javascript 对象。

我想要带有 p 变量的全名,而不从任何对象复制数据。

我希望这两个对象都能保留它们当前拥有的原始值。有什么办法可以实现这一点吗?

最佳答案

使用Object.assign() 合并数组,这会更新两个属性。

var s = {
fname: 'Ashish',
lname: 'Gokhale',
getFullName: function() {
return this.fname + ' ' + this.lname;
}
}
var p = {
fname: "Xyz",
lname: "Abc"
};

Object.assign(s, p);

console.log(s.getFullName());

<小时/>

更新:如果您不想更新原始对象,则可以通过传递一个空对象作为第一个参数来生成一个新对象。

var s = {
fname: 'Ashish',
lname: 'Gokhale',
getFullName: function() {
return this.fname + ' ' + this.lname;
}
}
var p = {
fname: "Xyz",
lname: "Abc"
};

console.log(Object.assign({}, s, p).getFullName());
<小时/>对于较旧的浏览器,请检查 polyfill option of the method .

<小时/>

您可以使用的另一个选项是 bind() 方法,它有助于更​​新 this 关键字值,将 p 设置为此参数在 bind()

var s = {
fname: 'Ashish',
lname: 'Gokhale',
getFullName: function() {
return this.fname + ' ' + this.lname;
}
}
var p = {
fname: "Xyz",
lname: "Abc"
};

var fn = s.getFullName.bind(p);

console.log(fn());

关于javascript 通过其他 javascript 对象的一个​​对象方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37365843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com