日本阿v片在线播放免费,成人国产片视频在线观看,日韩黄片毛片在线观看,一区亚洲电影,琪琪秋霞午夜av影视在线,中文字幕在线视频不卡,最新大伊香蕉精品视频在线,亚洲AV无码日韩一区二区乱

      javascript中數組和對象的深拷貝和淺拷貝

      2018-5-2    seo達人

      如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

      1、首先理解一下“深拷貝”和“淺拷貝”的區別:

      淺拷貝:a = b;//a和b中存的是相同的地址,該地址指向堆內存中相同的地方,即a和b就是一個東西,改變a的值b的值也會跟著改變,同理改變b的值a的值也會發生改變;

      深拷貝:a和b中存的地址不同,但是地址對應的堆內存中的內容完全一致,即b是a的副本

      2、

      (1)數組和對象的淺拷貝一樣  ,簡單的賦值操作

      var b = a;

      如數組的淺拷貝:

      [javascript] view plain copy
      1. var a = ['1','2','3'];  
      2. var b = a;  
      3. b[0] = '5';  
      4. console.log('a',a);  
      5. console.log('b',b);  

      輸出的值為:

      對象的淺拷貝:

      [html] view plain copy
      1. var a = {name:'1',age:'2',color:'3'};  
      2. var b = a;  
      3. b.name = '5';  
      4. console.log('a',a);  
      5. console.log('b',b);  

      輸出的值為:

      (2)數組的深拷貝

      ES5:var b = a.concat();

      [javascript] view plain copy
      1. var a = ['1','2','3'];  
      2. var b = a.concat();  
      3. b[0] = '5';  
      4. console.log('a',a);  
      5. console.log('b',b);  

      輸出的結果為:

      ES6 let [...b] = a;

      (3)對象的深拷貝

      ES5: 

      [javascript] view plain copy
      1. var a = {name:'1',age:'2',color:'3'};  
      2. function copyObj(a) {  
      3. var b = {};  
      4. for(var key in a) {  
      5. b[key] = a[key];  
      6. }  
      7. return b;  
      8. }  
      9. var c = copyObj(a);  
      10. c.name = '5';  
      11. console.log('c',c);  
      12. console.log('a',a);  

      輸出的結果為:

      ES6:

      let {...b} = a;


      藍藍設計m.jjddy.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務


      日歷

      鏈接

      個人資料

      藍藍設計的小編 http://m.jjddy.com

      存檔