let obj = { name:'AAA', age:18 } // 1,新建新對象,復制原來對象的值 let obj1 = { name:obj.name, age:obj.age } obj1.name = 'BBB' // console.log(obj); // AAA // console.log(obj1); // BBB // 2,新建對象,循環添加 let obj2 = {} for(let key in obj){ obj2[key] = obj[key] } obj2.name = 'CCC' // console.log(obj); // AAA // console.log(obj2); // CCC // 3, Object.assign() let obj3 = Object.assign({},obj) // 第一個參數目標對象要加上 obj3.name = 'DDD' console.log(obj); // AAA console.log(obj3); // DDD // 4,點語法展開 let obj4 = Object.assign({...obj}) obj4.name = 'EEE' console.log(obj); // AAA console.log(obj4); // EEE
什么是對象的淺拷貝?
簡單的理解就是拷貝了對象的第一層屬性,如果對象的某個屬性還有第二層,第三層的數據,淺拷貝是訪問不到的。
比如說某個屬性的值是對象,那淺拷貝無法復制該對象的數據。
