用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。
1、以对象为参数的合并
1)Object.assign方法的第一个参数是目标对象,后面的参数都是源对象
const target = {a: 1};
const source1 = {b: 2};
const source2 = {c: 3};
Object.assign(target, source1, source2);
console.log(target)// {a:1, b:2, c:3}
2)如果只有一个参数,会直接返回该参数
const obj = {a: 1};
console.log(Object.is(Object.assign(obj), obj))//true
3)如果该参数不是对象会先转换成对象
console.log(Object.assign(2))
console.log(typeof Object.assign(2))//object
4)undefined和null无法转成对象,所以如果他们作为参数会报错
console.log(Object.assign(undefined))//报错
console.log(Object.assign(null))//报错