Ist es möglich, mit ES5 JavaScript tief zu kopieren?Ist es möglich, mit ES5 JavaScript tief zu kopieren?
Das Problem, das ich derzeit habe, ist Eigenschaften verschachtelten mehr als 2 Ebenen tief scheinen, durch Referenz anstelle von Wert zu kopieren.
Hier ist, was ich zur Zeit kopieren implementiert haben ...
// Clone an object and return the clone
function clone (obj) {
var newObj = (obj instanceof Array) ? [] : {};
for (var prop in obj) {
if(typeof obj[prop] === 'object') {
newObj[prop] = clone(obj[prop]);
}
newObj[prop] = obj[prop]
}
return newObj;
};
Und hier ist der Code zum Test verwendet:
const a = { a: 1, b: { c: 2 }};
const b = clone(a);
a.a = 10;
b.a == a.a; // false
a.b = 10;
b.b == 10; // false
a.b.c = 10;
a.b.c == b.b.c; // true
Der letzte, den Wert c
sowohl a
geändert und b
Objekte. Die c
-Eigenschaft scheint ein Referenztyp zu sein.
Wie kann ich sicherstellen, dass alle Werte nach Wert kopiert werden und keine Referenzen sind?
Hl Christus. Es war ein langer Tag! Aber danke, dass du das gesehen hast. Funktioniert. – BugHunterUK