1、基本概念数组
Object.assign方法用来将源对象(source)的全部可枚举属性,复制到目标对象(target)。它至少须要两个对象做为参数,第一个参数是目标对象,后面的参数都是源对象。
Object.assign(target, source_1, ..., source_n)
2、基本用法函数
let target = {a: 1}; let object2 = {b: 2}; let object3 = {c: 3}; Object.assign(target,object2,object3); // 第一个参数是目标对象,后面的参数是源对象 target; // {a: 1, b: 2, c: 3}
须要注意的是,spa
Object.assign(null); // TypeError: Cannot convert undefined or null to object Object.assign(undefined); // TypeError: Cannot convert undefined or null to object 当参数不止一个时,null 和 undefined 不放第一个,即不为目标对象时,会跳过 null 和 undefined ,不报错 Object.assign(1,undefined); // Number {1} Object.assign({a: 1},null); // {a: 1} Object.assign(undefined,{a: 1}); // TypeError: Cannot convert undefined or null to object
3、扩展运算符code
对象的扩展运算符(...
)用于取出参数对象的全部可遍历属性,拷贝到当前对象之中。因为数组是特殊的对象,因此对象的扩展运算符也能够用于数组。对象
对象的扩展运算符等同于使用Object.assign()
方法。blog
let aClone = { ...a }; // 等同于 let aClone = Object.assign({}, a);
var phoneInfo= { areaCode: '', phone: '' } var z = { ...phoneInfo, areaCode: "86" } //等同于 var z = Object.assign({}, phoneInfo, { areaCode: 86 })