VUE開(kāi)發(fā) - 深拷貝與淺拷貝探討

普通的 變量賦值一般都是淺拷貝,類(lèi)似于java指針的概念

let a = 1;
let b = a;

對(duì)b來(lái)說(shuō)就是淺拷貝。

還有一個(gè)問(wèn)題估計(jì)前端小伙伴經(jīng)常遇到

data(){
return {
  list:[1,2,3]
}
}

當(dāng)你在方法中去需要接收這個(gè)list去處理一些業(yè)務(wù),但是又不想影響到原數(shù)據(jù)。

let item = this.list[0] 

if(item){
  item = 0
}

這個(gè)時(shí)候,你說(shuō)  this.list[0] 是多少?是1還是0 ?

上面就是淺拷貝。

想要避免這種問(wèn)題影響到主體的處理,利用深拷貝,直接

let item = JSON.pase(JSON.stringIfy(this.list[0]))

這樣,你怎么處理item都不會(huì)影響到原數(shù)據(jù)結(jié)構(gòu)。淺拷貝就是你,深拷貝就是另一個(gè)你,和你沒(méi)任何關(guān)系,除了一模一樣外。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類(lèi)型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,675評(píng)論 1 32
  • 深拷貝和淺拷貝(Shallow copy 和 Deep copy) 一.概念定義 對(duì)象復(fù)制有兩種:淺拷貝和深拷貝。...
    鐵頭娃_e245閱讀 985評(píng)論 0 3
  • 深拷貝和淺拷貝這個(gè)問(wèn)題在面試中常常被問(wèn)到,而在實(shí)際開(kāi)發(fā)中,只要稍有不慎,就會(huì)在這里出現(xiàn)問(wèn)題。尤其對(duì)于初學(xué)者來(lái)說(shuō),我...
    西門(mén)淋雨閱讀 1,928評(píng)論 0 1
  • 307、setValue:forKey和setObject:forKey的區(qū)別是什么? 答:1, setObjec...
    AlanGe閱讀 1,722評(píng)論 0 1
  • 其實(shí)都是老生常談的問(wèn)題了,經(jīng)常會(huì)看見(jiàn)關(guān)于深拷貝與淺拷貝的話題,自己也一直是只了解一點(diǎn),并未系統(tǒng)深入的研究過(guò),理解也...
    ArmorVon閱讀 531評(píng)論 0 0

友情鏈接更多精彩內(nèi)容