如何使用ES6将两个具有函数的对象合并为一个新对象

How do you merge two objects with functions into a new one using ES6?

本文关键字:对象 合并 新对象 一个 ES6 何使用 两个 函数      更新时间:2023-09-26

我想使用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);,但返回了{}

任何帮助都将不胜感激!

您的示例应该确实有效:

var joined = Object.assign({}, first, second);

小心使用不带空对象的assign作为第一个参数,例如:

var joined = Object.assign(first, second);

因为first将被突变

运行您自己的代码(并且正在工作)的JSBin示例:

https://jsbin.com/tekokawice/edit?js,控制台

您应该能够为此使用Object.assign:

注意,正如Chris在下面的回答中提到的,这将使第一个对象发生变异。

JSBin示例

var joined = Object.assign(first, second);
// joined:
{
  first: function first() {
    return {
      type: FIRST
    };
  },
  second: function second() {
    return {
      type: SECOND
    };
  }
}