Ich verwende js/jQuery und versuche, einen echten Klon zu erstellen - ich verwende derzeit jQuery für diesen Zweck. Ich würde erwarten, dass in mehrstufigen Objekten sogar die untergeordneten Objekte tief geklont werden sollten, aber dies scheint nicht der Fall zu sein. Unten ist mein Testcode und output, der mich zu der Annahme führt, dass der tiefe Klon von jQuery nicht wirklich alle untergeordneten Objekte klont.jQuery Deep Clone ist nicht rekursiv
hat jemand eine echte tiefe Klonfunktion geschrieben, oder gibt es eine Möglichkeit, jQuery's Arbeit wie erwartet zu machen?
Code:
function deepClone (obj) {
return $.extend(true, {}, obj);
};
var orig = {};
orig.companyData = {};
orig.companyData.TEST= 1;
var deep1 = deepClone(orig);
deep1.companyData.TEST= 0;
var deep2 = deepClone(orig);
console.log("orig: " + orig.companyData.TEST);
console.log("deep1: " + deep1.companyData.TEST);
console.log("deep2: " + deep2.companyData.TEST);
Konsolenausgabe:
Hinweis: Ich erwarte, 1, 0, 1
0
0
0
Könnten Sie den Code hinzufügen, wo orig und companyData definiert sind? – Chitrang
@Chitrang hinzugefügt, um es jetzt –
scheint wie erwartet zu funktionieren ... https://jsfiddle.net/ufm3vyvL/ –