對象和數組的深淺拷貝

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)


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容