亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue對(duì)象復(fù)制方式(深拷貝,多層對(duì)象拷貝方式在后面)

 更新時(shí)間:2022年09月08日 08:44:30   作者:因?yàn)槟悴粫?huì),所以你才會(huì)  
這篇文章主要介紹了vue對(duì)象復(fù)制方式(深拷貝,多層對(duì)象拷貝方式在后面),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue對(duì)象復(fù)制

使用:es6中的“對(duì)象擴(kuò)展運(yùn)算符 ”,如下

    // 對(duì)象深拷貝
    obejctCopy() {
      // 源對(duì)象小李
      const source = { name: '小李', age: 18, gender: '男', school: '清華大學(xué)' }
      // 拷貝小李
      const copy1 = { ...source }
      // 拷貝小李,并修改名字為小張
      const copy2 = { ...source, name: '小張' }
      // 修改源對(duì)象
      source.age = 19
      // 查看結(jié)果
      console.log(source)
      console.log(copy1)
      console.log(copy2)
    }

結(jié)果:可見(jiàn)拷貝出來(lái)的對(duì)象,與源對(duì)象無(wú)關(guān),深拷貝完成

更新

經(jīng)網(wǎng)友指出,當(dāng)對(duì)象中還包含對(duì)象時(shí),則里層對(duì)象還是淺拷貝,驗(yàn)證代碼

      // 源對(duì)象小李
      // const source = { name: '小李', age: 18, gender: '男', school: '清華大學(xué)' }
      const source = { name: '小李', age: 18, gender: '男', school: '清華大學(xué)', more: { a: "test", b: 2, c: {} } }
      // 拷貝小李
      const copy1 = { ...source }
 
      console.log(source === copy1)               // false
      console.log(source.more === copy1.more)     // true

若要里層拷貝則需要再次使用...,如下

      // 源對(duì)象小李
      // const source = { name: '小李', age: 18, gender: '男', school: '清華大學(xué)' }
      const source = { name: '小李', age: 18, gender: '男', school: '清華大學(xué)', more: { a: "test", b: 2, c: {} } }
      // 拷貝小李
      const copy1 = { ...source, more: { ...source.more } }
 
      console.log(source === copy1)               // false
      console.log(source.more === copy1.more)     // false

我的理解

==比較對(duì)象的時(shí)候還是比較的引用地址是不是同一個(gè)。在多層拷貝中,雖然“對(duì)more的引用”這個(gè)操作被復(fù)制了,但是引用指向的“more對(duì)象地址”還是同一個(gè),內(nèi)存中實(shí)際上只有一個(gè)“more”。因此要再次復(fù)制more才可以

vue對(duì)象復(fù)制的坑--對(duì)象深度拷貝

錯(cuò)誤描述

使用vue store 存儲(chǔ)的復(fù)雜對(duì)象,在其它文件中將其賦值給其他變量后,被賦值對(duì)象修改后,store中存儲(chǔ)的對(duì)象也被修改了。。。

解決辦法

如:depttreedata 為存儲(chǔ)在store->getters中的非簡(jiǎn)單對(duì)象,將其拷貝給dept02data 對(duì)象可以寫(xiě)作:

let dept02data = JSON.parse(JSON.stringify(this.$store.getters.depttreedata));

之后引用dept02data 則不會(huì)影響原對(duì)象。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論