{}在ES6 Object.assign函数中做了什么

时间:2017-09-11 17:08:01

标签: javascript ecmascript-6

我对Object.assign函数的一些简单功能感到有些困惑。请采取以下措施:

const a = {'a':'1'};
const b = {'b':'2'};
const final = Object.assign(a, b) // {a:1, b:2}

该与以下内容有何区别:

const a = {'a':'1'};
const b = {'b':'2'};
const final = Object.assign( {}, a, b) // {a:1, b:2}

起始{}对象的目的是什么,何时适合使用它,或者完全不使用它?

1 个答案:

答案 0 :(得分:1)

Object.assign会改变它的第一个参数。例如,在您的第一个示例中:

const a = {'a':'1'};
const b = {'b':'2'};
const final = Object.assign(a, b) // {a:1, b:2}
console.log(a); // {a:1, b:2}

将对象b的属性复制到对象a。

但是在你的第二个例子中:

const a = {'a':'1'};
const b = {'b':'2'};
const final = Object.assign({}, a, b) // {a:1, b:2}
console.log(a); // {a:1}

{}将创建一个新对象,a和b的属性将被复制到该对象。 Object.assign将返回其第一个参数。