如何将第二个对象的值添加到第一个对象?

问题描述:

我自己学习JavaScript,正在浏览教程,无法理解如何将第二个对象的值添加到第一个对象。我试图看看这How can I add a key/value pair to a JavaScript object?,但我无法遵循它。 下面是我写的代码:如何将第二个对象的值添加到第一个对象?

var person1 = { 
     name: 'Joe', 
    role: 'specialist' 
}; 
var person2 = { 
    name: 'Mr. Roberts', 
    role: 'supervisor' 
}; 

function addObjectProperty(obj1, key, obj2) { 
    addObjectProperty(person1, 'manager', person2); 

    return (person1.manager = (person2.name + person2.role)); 
} 

console.log(person1.manager); 

我的结果回报:

undefined 

但它应该返回:

// --> { name: 'Mr. Roberts', role: 'supervisor' } 

可能有人好心劝进一步我?谢谢! :)

+3

到'addObjectProperty()的调用'需要是**外**的函数,而不是内部。 – Pointy

+0

非常感谢! – learninghowtocode

+0

@Pointy当我做你的建议时,我会得到:**先生。罗伯茨,主管**而不是** {姓名:'先生罗伯茨',角色:'主管'} **。我将如何解决这个问题?我尝试添加** obj1 [key] = obj2 **,但它没有改变任何东西。或者,易卜拉欣如何编写下面的代码是最好的方法呢?非常感谢! – learninghowtocode

var person1 = { 
 
    name: 'Joe', 
 
    role: 'specialist' 
 
}; 
 
var person2 = { 
 
    name: 'Mr. Roberts', 
 
    role: 'supervisor' 
 
}; 
 

 
function addObjectProperty(obj1, key, obj2) { 
 
    obj1[key] = obj2; // using bracket notaion to add obj2 as a property of obj1 under the key key 
 
} 
 

 
// call the function outside its definition or it'll cause an infinite recursion 
 
addObjectProperty(person1, 'manager', person2); // person1.manager = person2 
 

 
console.log(person1);

+0

这工作,非常感谢! – learninghowtocode