我想使用ES6将两个带有函数的对象连接到一个合并对象,不知道如何做到这一点。
例如,我想合并这两个对象:
const first = {
first: function() {
return {
type: FIRST
};
}
};
const second = {
second: function() {
return {
type: SECOND
};
}
};
进入一个新对象:
const new = {
first: function() {
return {
type: FIRST
};
},
second: function() {
return {
type: SECOND
};
}
}
最好的方法是什么?我尝试了Object.assign({}, first, second);
,但这又返回{}
。
任何帮助将不胜感激!
答案 0 :(得分:4)
你的榜样确实应该有效:
var joined = Object.assign({}, first, second);
小心使用不带空对象的assign作为第一个参数,例如:
var joined = Object.assign(first, second);
因为first
将变异。
运行自己的代码(和工作)的JSBin示例:
答案 1 :(得分:2)
您应该可以使用Object.assign:
请注意下面Chris的答案中提到的,这将改变第一个对象。
var joined = Object.assign(first, second);
// joined:
{
first: function first() {
return {
type: FIRST
};
},
second: function second() {
return {
type: SECOND
};
}
}