1、對象的淺拷貝
(1)對象的合并 Object.assign(),第一個參數必須是個空對象

(2)對象的解構賦值

2、對象深拷貝
(1)利用jQuery的$.extend方法

(2)通過轉換字符串即內置的JSON對象來轉換拷貝

弊端:這種簡單粗暴的方法有其局限性,當值為undefined、function、symbol 會在轉換過程中被忽略

(3)數組或對象深拷貝(利用循環(huán)和遞歸)

3、數組淺拷貝
(1)利用數組的?slice?方法或者?concat?方法

4、數組深拷貝
????????與對象深拷貝方法相同
(1)通過轉換字符串即內置的JSON對象來轉換拷貝

弊端:這種簡單粗暴的方法有其局限性,當值為undefined、function、symbol 會在轉換過程中被忽略

(2)數組或對象深拷貝(利用循環(huán)和遞歸)(但是key為null或undefined時不能拷貝)

(3)?原理也比較好理解,他是將原數組中抽離部分出來形成一個新數組。我們只要設置為抽離全部,即可完成數組的深拷貝
var arr = [1,2,3,4,5]
vararr2 = arr.slice(0)
arr[2] =5
console.log(arr)
console.log(arr2)
