1、Object.assign(): 用于将所有可枚举属性的值从一个或多个源对象复制到目标对象,返回目标对象。
语法:Object.assign(target, …sources)
例子:
const object1 = { a: 1, b: 2, c:3 }
const object2 = Object.assign({}, object1)
console.log(object.c) //3
//合并对象,合并相同属性的对象
const obj1 = { a:1 }
const obj2 = { b:2 }
const target = Object.assign({}, obj1, obj2)
console.log(target) //{ a:1, b:2 }
const obj3 = { a:1, b:2, c:3 }
const mergeSame = Object.assign({}, obj1, obj2, obj3)
console.log(mergeSame) //{ a:1, b:2, c:3 }
**注意:**针对深拷贝,需要使用其他方法,因为 Object.assign()拷贝的是属性值。假如源对象的属性值是一个指向对象的引用,它也只拷贝那个引用值。通过JSON.parse(JSON.stringify())可实现深拷贝
(1)补充说明:
①:JSON.parse(): 从一个字符串中解析出json对象
const data = '{ "name": "goating" }'
JSON.parse(data) // { name: "goating" }
②JSON.stringify(): 将javascript值转为JSON字符串
const data = { name: "goating" }
JSON.stringify(data) // '{ "name": "goating" }'