小编典典

如何在ES6 +中将两个javascript对象合并在一起?

javascript

我厌倦了总是不得不编写这样的代码:

function shallowExtend(obj1,obj2){
  var key;
  for ( key in obj2 ) {
    if ( obj2.hasOwnProperty(key) === false )  continue;
    obj1[key] = obj2[key]
  }
}

或者,如果我不想自己编写代码,请实现一个已经执行过的库。ES6 +肯定会在这方面获救,这将为我们提供类似a
Object.prototype.extend(obj2...)Object.extend(obj1,obj2...)

那么ES6 +是否提供这种功能?如果尚不存在,那么是否计划了此类功能?如果没有计划,那为什么不呢?


阅读 662

收藏
2020-05-01

共1个答案

小编典典

您将可以通过使用Object.assign在ES6中进行浅合并/扩展/分配:

句法:

Object.assign( targetsources );

其中 … sources 表示源对象。

例:

var obj1 = {name: 'Daisy', age: 30};
var obj2 = {name: 'Casey'};

Object.assign(obj1, obj2);

console.log(obj1.name === 'Casey' && obj1.age === 30);
// true
2020-05-01