首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用来自另一个对象的值替换多个对象值?

如何用来自另一个对象的值替换多个对象值?
EN

Stack Overflow用户
提问于 2014-03-05 10:41:52
回答 3查看 349关注 0票数 1

例如,假设我有以下对象:

代码语言:javascript
复制
person = {firstname:"Freddy", lastname:"Fish", age:15}

在这个对象中,我想替换这个人的名字和姓氏。

而不是使用

代码语言:javascript
复制
person.firstname = "Earthworm";
person.lastname = "Jim";

我想用这样的方法

代码语言:javascript
复制
person += {firstname:"Earthworm", lastname: "Jim"}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-05 10:47:56

一些JavaScript库包括一个名为extend的方法,它可以执行所需的任务:

  • jQuery:http://api.jquery.com/jquery.extend/
  • 下划线http://underscorejs.org/#extend

您可以在这里看到下划线的实现,以防您不想使用库:

  • http://underscorejs.org/docs/underscore.html#section-84

现在您也可以在这里看到它,不需要单击:

代码语言:javascript
复制
_.extend = function(obj) {
    each(slice.call(arguments, 1), function(source) {
        if (source) {
            for (var prop in source) {
                obj[prop] = source[prop];
            }
        }
    });
    return obj;
};
票数 2
EN

Stack Overflow用户

发布于 2014-03-05 10:45:41

如果您不介意为此目的使用jQuery,您可以这样做:

代码语言:javascript
复制
$.extend(person ,{firstname:"Worm", lastname: "Jim"});

它将替换现有字段的值,并添加新字段-> $.extend()

票数 2
EN

Stack Overflow用户

发布于 2014-03-05 11:06:53

您可以使用Object.defineProperty()

http://jsfiddle.net/9Bfrc/1/

代码语言:javascript
复制
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}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22195362

复制
相关文章

相似问题

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