我厌倦了总是不得不编写这样的代码:
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...)
Object.prototype.extend(obj2...)
Object.extend(obj1,obj2...)
那么ES6 +是否提供这种功能?如果尚不存在,那么是否计划了此类功能?如果没有计划,那为什么不呢?
您将可以通过使用Object.assign在ES6中进行浅合并/扩展/分配:
句法:
Object.assign( target , sources );
其中 … sources 表示源对象。
例:
var obj1 = {name: 'Daisy', age: 30}; var obj2 = {name: 'Casey'}; Object.assign(obj1, obj2); console.log(obj1.name === 'Casey' && obj1.age === 30); // true