コピー

1 <スクリプトタイプ= "text / htmlの">
 2      VAR OBJ1 = {
 3          '名称': '撩课' 4          '年齢':2
 5      }。
6      VAR OBJ2 = {};
7  
8      VARのキーOBJ1){
 9          OBJ2 [キー] = OBJ1 [キー]。
10      }
 11      obj1.age = 30 12      にconsole.log(OBJ1)。
13      にconsole.log(OBJ2)。
14  
15 </ SCRIPT>
<スクリプトタイプ= "text / htmlの">
     VAR OBJ1 = {
         '名前': '撩课'  '年齢':2 
    }。
    VAR OBJ2 = {}; 

    Object.assign(OBJ2、OBJ1)。// 合并 
    obj2.age = 100 ; 
    console.log(OBJ1)。
    console.log(OBJ2)。
</ SCRIPT>

上記2種類の浅いコピーであります

1 <SCRIPT>
 2      のvar P = {
 3          '名称': 'ジョン・ドウ' 4          'Qucik事実ペット':[ 'HA'、 'カイ'は、 '小たい' ]
 。5      };
 6  
。7      VAR copyP = {};
 8      Object.assign(copyP、P);
 9  
10      p.pets.push( '私は素晴らしく、大きな川' );
 11      にconsole.log(copyP);
 12である     にconsole.log(P)
 13である </ SCRIPT>
 14  
15は、元のデータに影響を与え、増加します

ディープコピー

1 <SCRIPT>
 2      VAR OBJ = {
 3。          名: 'ステッチコース' 4。          年齢:18である5人の。          友達:[ '花'、 'ブラック' ]、
 6。         goodF:{
 7              名: '小ステッチ' 8。              エイジ。:19 9              アドレス: '上海' 10の              Qucik事実ペット:[{名: 'ポテト'}、{名: 'ポテト' }]}、
 11。          BIR:新しい新しい日付()
 12である     };
 13である 
14      VAR NEWOBJ =JSON.parse(JSON.stringify(OBJ));
 15    このようなディープコピーすることによる、各影響しません
 16      obj.goodF.pets [0] .nameの= 'ハッハッハ' ;
 17      にconsole.log(NEWOBJ)。
 18はある     にconsole.log(OBJ);
 19  
20れる     // かかわらず変化、新しい古いと欠陥がお互いに影響を与えません(再帰的に行う)
21がある </ SCRIPT>

 

おすすめ

転載: www.cnblogs.com/zhangzhengyang/p/11241552.html
おすすめ