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>