1.基本用法:对象的合并,如果相同的属性,后边覆盖前边的.如果只有一个参数,直接返回该参数.如果不是对象,先转化成对象在返回.由于undefined和null无法转成对象,所以如果它们作为参数,就会报错。
var target = { a: 'a' }; var source1 = { b: 'b' }; var source2 = { c: 'c'}; Object.assign(target, source1, source2); target // {a:a, b:b, c:c}
2.浅拷贝.遇到同名属性.替换该属性而不是添加属性.常见的使用时给对象添加属性和方法,克隆对象
var obj1 = {a: {b: 'b'}}; var obj2 = Object.assign({}, obj1); obj1.a.b = b; obj2.a.b // b