将两个对象混合为一个对象
Object.assign()
参数:可传入多参数,
返回值:为第一个参数 ,会改变第一个参数的值
假设有参数为两个对象,第二参数的对象会将值复制给第一个对象来实现对象混合,如果是三个对象的话,第三个对象会先跟第二个对象混合后在跟第一个对象混合, 如果想不改变源对象的值进行混合,就需要把第一个设置为空对象来接受后面的值,
对象混合,且不改变原对象的值
var obj1 = {x: 1,y: 3,z: 5};var obj2 = {x: "abc",z: "bcd",h: "aaa"};var obj = Object.assign({}, obj1, obj2);
自己实现
var o1 = {x:1,y:12,zx:'asdf',1:{x:123,},2:[1,2,3]}var o2 = {x:'asdf',y:'sdgrrrrrrrr',h:'hjkyuio',ss:[1,2,3]}function objMixture(obj1,obj2){var newObj = {};// 把obj1中的属性复制到newObjfor (var prop in obj2) {newObj[prop] = obj2[prop];}// 将obj1中有的但是obj2中没有的复制到newObjfor (var prop in obj1) {if (!(prop in obj2)) {newObj[prop] = obj1[prop];}}return newObj;}var oo = objMixture(o1,o2)
