淺談...三個點語法以及深淺拷貝

2020-10-18 16:00:15

淺談...三個點語法以及深淺拷貝,(面試大概率問題)

來談一談物件的拷貝以及三個點語法的使用
首先創造一個物件
物件當中加入一個方法用來偵錯
淺拷貝,只是把指標給了拷貝的物件,存取的物件是一樣的
在這裡插入圖片描述
內容過多先不展示瀏覽器效果
把obj物件的值賦值給obj1,此時obj1的指標和obj的指向相同,修改obj1的屬性值,obj也會受到影響;
深拷貝 :兩個物件沒有任何關係
首先可以通過JSON轉化進行深拷貝,但是此方法會造成物件內方法的丟失

在這裡插入圖片描述
1,通過JSON的兩次轉化完成深拷貝,此時的obj1和obj沒有任何關係,但是此時的obj1中沒有obj的say方法,修改obj1-obj感受不到變化

2,通過for-in遍歷迴圈完成
在這裡插入圖片描述
通過遍歷將obj的值給obj1空物件,得到一個全新的物件,同時可以得到obj中的say方法進行呼叫或修改物件,obj感受不到

3,Object.assign()方法
在這裡插入圖片描述
如圖:將obj複製給obj1進行深拷貝,此時obj1呼叫值以及方法obj不會受到任何影響

4,接下來就是…三個點語法
在這裡插入圖片描述
將obj的方法通過…語法給到obj1進行深拷貝,修改obj1的數值以及呼叫方法obj不會受到影響

文章略短,下一篇文章會詳細介紹…語法
如有錯誤請指出,拿文章請通知作者謝謝