例如说我有以下对象:
person = {firstname:"Freddy", lastname:"Fish", age:15}
在这个对象中,我想替换该人的名字和姓氏。
而不是使用
person.firstname = "Earthworm";
person.lastname = "Jim";
我想使用像
这样的东西person += {firstname:"Earthworm", lastname: "Jim"}
答案 0 :(得分:2)
如果你不介意为此目的使用jQuery,你可以这样做:
$.extend(person ,{firstname:"Worm", lastname: "Jim"});
它将替换现有字段的值并添加新字段 - > $.extend()
答案 1 :(得分:2)
某些JavaScript库包含一个名为extend
的方法,它可以执行您想要的操作:
如果您不想使用库,可以在此处查看Underscore的实现:
现在你也可以在这里看到它,没有必要点击:
_.extend = function(obj) {
each(slice.call(arguments, 1), function(source) {
if (source) {
for (var prop in source) {
obj[prop] = source[prop];
}
}
});
return obj;
};
答案 2 :(得分:1)
person1 = {firstname:"Freddy", lastname:"Fish", age:15};
person2 = {firstname:"errr", lastname:"Fsdfish"};
props=Object.getOwnPropertyNames(person2);
for(i in props){
var prop=''+props[i];
Object.defineProperty(person1,prop,{value:person2[prop]});
}
console.log(person1); //Object { firstname="errr", lastname="Fsdfish", age=15}