例如,假设我有以下对象:
person = {firstname:"Freddy", lastname:"Fish", age:15}在这个对象中,我想替换这个人的名字和姓氏。
而不是使用
person.firstname = "Earthworm";
person.lastname = "Jim";我想用这样的方法
person += {firstname:"Earthworm", lastname: "Jim"}发布于 2014-03-05 10:47:56
一些JavaScript库包括一个名为extend的方法,它可以执行所需的任务:
您可以在这里看到下划线的实现,以防您不想使用库:
现在您也可以在这里看到它,不需要单击:
_.extend = function(obj) {
each(slice.call(arguments, 1), function(source) {
if (source) {
for (var prop in source) {
obj[prop] = source[prop];
}
}
});
return obj;
};发布于 2014-03-05 10:45:41
如果您不介意为此目的使用jQuery,您可以这样做:
$.extend(person ,{firstname:"Worm", lastname: "Jim"});它将替换现有字段的值,并添加新字段-> $.extend()。
发布于 2014-03-05 11:06:53
http://jsfiddle.net/9Bfrc/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}https://stackoverflow.com/questions/22195362
复制相似问题