亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于clone復制問題

  • 元素數據(data)內對象和數組不會被復制,將繼續被克隆元素和原始元素共享。深復制的所有數據,需要手動復制每一個。

    當clone()方法的參數為true時,不是可以把數據一并復制過來嗎?為什么最后一點元素數據內對象和數組又不回被復制了?這一點怎么感覺和深復制矛盾了。


正在回答

1 回答

深復制指的是開辟了一塊新的內存并將數據拷貝一份新的到新的內存中

使用clone(true)將繼續被克隆元素和原始元素共享, 兩個元素使用的是同一個數據, 也就是說改變其中一個元素數據, 另一個元素的數據也將改變,

簡單點的例子:

a.data = [1, 2, 3];

b = a.clone(true);

b.data; // [1, 2, 3]

b.data[2] = 5; // [1, 2, 5]

a.data // [1, 2, 5]

0 回復 有任何疑惑可以回復我~
#1

T松子 提問者

謝謝,明白很多了
2018-09-03 回復 有任何疑惑可以回復我~
#2

qq_Sakuragi10_0

請教一下,既然已經設置了true,那就說明是深克隆(根據教程的意思大概是這樣?),那為什么b還會和a享用同一個數據啊...?希望大佬解答,多謝!
2019-04-08 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于clone復制問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號