Heim  >  Artikel  >  Web-Frontend  >  Was ist der Unterschied zwischen Deep Copy und Shallow Copy von Objekten in js?

Was ist der Unterschied zwischen Deep Copy und Shallow Copy von Objekten in js?

王林
王林nach vorne
2020-05-10 09:14:113303Durchsuche

Was ist der Unterschied zwischen Deep Copy und Shallow Copy von Objekten in js?

Grundlegende Datentypen: Durch Kopieren wird der Wert der Variablen direkt kopiert, während Referenztypen tatsächlich die Adresse der Variablen kopieren.

Auf dieser Grundlage wird zwischen flacher Kopie und tiefer Kopie unterschieden. Beim Kopieren dieses Objekts wird nur der Basisdatentyp kopiert und nur der Referenzdatentyp kopiert Ohne Neuerstellung wird ein neues Objekt als flache Kopie betrachtet. Beim Kopieren des Referenzdatentyps wird dagegen ein neues Objekt erstellt und seine Mitglieder werden als tiefe Kopie betrachtet.

Beispielcode für tiefe Kopie:

let o2 = JSON.parse(JSON.stringify(o1))
function deepCopy(s) {
const d = {}
for (let k in s) {
if (typeof s[k] == 'object') {
d[k] = deepCopy(s[k])
} else {
d[k] = s[k]
}
}
return d
}

Beispielcode für flache Kopie:

let o2=Object.assign({},o1)

Empfohlenes Tutorial:

js-Einführungs-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Deep Copy und Shallow Copy von Objekten in js?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen