Heim > Web-Frontend > js-Tutorial > Einführung in den Unterschied zwischen Deep Copy und Shallow Copy in JavaScript

Einführung in den Unterschied zwischen Deep Copy und Shallow Copy in JavaScript

不言
Freigeben: 2018-10-16 12:01:47
nach vorne
1967 Leute haben es durchsucht

Dieser Artikel bietet Ihnen eine Einführung in den Unterschied zwischen Deep Copy und Shallow Copy. Ich hoffe, dass er für Freunde hilfreich ist.

Dieser Artikel erklärt den Unterschied zwischen Deep Copy und Shallow Copy in JavaScript.

Flache Kopie

Flache Kopie bezieht sich auf das Kopieren des Referenzwerts.

var original = {"prop1" : "Prop1", "prop2" : "prop2"};
console.log(JSON.stringify(original));
// {"prop1" : "Prop1", "prop2" : "prop2"}

var shallowCopy = original;
console.log(JSON.stringify(shallowCopy));
// {"prop1" : "Prop1", "prop2" : "prop2"}

shallowCopy.prop1 = "ChangedProp1";

console.log(JSON.stringify(original));
// {"prop1" : "ChangedProp1", "prop2" : "prop2"}
console.log(JSON.stringify(shallowCopy));
// {"prop1" : "ChangedProp1", "prop2" : "prop2"}
Nach dem Login kopieren

https://smoothprogramming.com...Einführung in den Unterschied zwischen Deep Copy und Shallow Copy in JavaScript

Hinweis:

  • In einer flachen Kopie haben der Originalwert und die Kopie dieselben Eigenschaften.

  • Flache Kopie kopiert nur die Objektreferenz.

  • Wenn beim flachen Kopieren das kopierte Objekt geändert wird, wirkt sich dies auf das Originalobjekt aus und umgekehrt.

  • In js erfolgt die Zuweisung von Arrays und Objekten standardmäßig auf flache Kopie.

Deep Copy/Deep Copy

Deep Copy bezieht sich auf das rekursive Kopieren der Eigenschaften eines Objekts in ein neues Objekt. In jquery verwenden wir $.extend, um eine tiefe Kopie durchzuführen.

$.extend(deepCopy, target, object1, [objectN] )
Nach dem Login kopieren

Der erste Parameter wird als wahr übergeben, was angibt, dass es sich um eine tiefe Kopie handelt, Ziel ist das Zielobjekt, Objekt1 das Originalobjekt.

var original = {"prop1" : "Prop1", "prop2" : "prop2"};
console.log(JSON.stringify(original));
// {"prop1" : "Prop1", "prop2" : "prop2"}

var deepCopy = $.extend(true, {}, original);
console.log(JSON.stringify(deepCopy));
// {"prop1" : "Prop1", "prop2" : "prop2"}

deepCopy.prop1 = "ChangedProp1";

console.log(JSON.stringify(original));
// {"prop1" : "Prop1", "prop2" : "prop2"}
console.log(JSON.stringify(deepCopy));
// {"prop1" : "ChangedProp1", "prop2" : "prop2"}
Nach dem Login kopieren

https://smoothprogramming.com...

Einführung in den Unterschied zwischen Deep Copy und Shallow Copy in JavaScript

Hinweis:

  • Beim Deep Copy haben die Kopie und das Originalobjekt keine gemeinsamen Attribute

  • Kopierattribute der Deep Copy-Rekursion

  • Die Kopie einer Tiefenkopie wirkt sich nicht auf das Originalobjekt aus und umgekehrt

  • Alle primitiven Datentypen in js führen standardmäßig eine Tiefenkopie durch, wie z. B. Boolean, null, Undefiniert, Zahl, Zeichenfolge usw.


Das obige ist der detaillierte Inhalt vonEinführung in den Unterschied zwischen Deep Copy und Shallow Copy in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage