数字化转型|广州蓝景分享—谈谈JavaScript 的对象复制( 三 )

obj.b.e = obj.b.c;
let newObj2 = Object.assign({ obj);
console.log(newObj2);
结果:
Object.assign()适用于浅拷贝circular对象 , 但不适用于深拷贝 。
使用展开运算符(…)
ES6已经实现了用于数组解构赋值的rest元素和用于数组字面量的展开运算符 。 数组的展开运算符实现如下:
const array = [
\"a\"
\"c\"
\"d\" {
four: 4


;
const newArray = [...array
;
console.log(newArray);
// Result
// [\"a\" \"c\" \"d\" { four: 4

对象初始值设定项中的扩展属性将自己的可枚举属性从源对象复制到目标对象 。 如果ECMAScript的Stage 3提案接受的话 , 那么复制对象变得非常容易:
let obj = {
one: 1
two: 2

let newObj = { ...obj ;
// { one: 1 two: 2
总结
希望通过本文能帮助大家理解并避免将来可能遇到的复制对象的陷阱 。 尤其是对JavaScript刚学习的新手而言 。