Thursday, April 28th 2011, 9:12am
Tags
clone,
clone object,
deep copy,
jQuery,
object
Abstract
var kopie = $.extend(true, {}, objekt);
Article
Üblicherweise wird bei einer "kopie" eines Objektes (var neu = alt) nicht das Objekt kopiert, sondern ein Verweis zum alten Objekt erstellt.
Verändert sich nun "alt", so verändert sich "neu" gleichermaßen mit.
Um dies zu verhindern, muss man eine "tiefe Kopie" durchführen bzw. das alte Objekt klonen.
Mittels jQuery ist dies in JavaScript sehr leicht möglich:
|
JavaScript Code
|
1
2
3
|
var neu = alt; //wird nicht kopiert, sondern nur referenziert
var neu = $.extend({}, alt); //ist das gleiche wie oben
var neu = $.extend(true, {}, alt); //führt eine tiefe Kopie durch und löst die Objekte voneinander
|
Für mehr Informationen:
jQuery Dokumentation
Request deletion
report critical content