Heim  >  Artikel  >  Web-Frontend  >  Vergleich und Verwendung von clone() und extension() in jQuery

Vergleich und Verwendung von clone() und extension() in jQuery

巴扎黑
巴扎黑Original
2017-06-25 10:03:011562Durchsuche

jQuerys clone()-Methode: Wenn ich ein Objekt anpasse, z. B.

 var obj = {
    chart: {
        type: 'spline',
        inverted: true
    },
    title: {//标题文字
        text: 'Atmosphere Temperature by Altitude'
    },
   ...

};

, wenn ich ein anderes obj2 anpassen möchte, kopiere den Inhalt von obj, ich habe

 var obj2 = obj.clone();
Offensichtlich habe ich ignoriert, dass obj nur ein

Objekt ist und es keine clone()-Methode gibt. Es handelt sich also offensichtlich um eine falsche Demonstration. Allerdings kann die mit jQuery gelieferte Methode clone() dieses Mal meine Anforderungen nicht mehr erfüllen, nämlich ein Objekt in ein anderes Objekt zu kopieren, clone(obj);

Kopie auf flacher Ebene: für Nicht-Basis

Datentyp , nach dem Klonen zeigen die beiden Zeiger auf denselben Speicherplatz. Wenn in diesem Fall ein Objekt bearbeitet wird, ändert sich auch der Inhalt des anderen.

Tiefe Kopie: Kopieren Sie jedes

Attribut und jede Methode des gezeigten Objekts auf das Objekt, auf das das neue Objekt zeigt, genau wie eine Kopie, sodass das neue Objekt geändert oder auf andere Weise geändert werden kann Der Vorgang hat keine Auswirkungen auf das Originalobjekt.

Im Folgenden gebe ich Ihnen eine Deep-Copy-Methode:

var cloneObj = function(obj){
var str, newobj = obj.constructor === Array ? [] : {};
if(typeof obj !== 'object'&& typeof obj !=='function'){
    return;
}else {
    for(var i in obj){
        newobj[i] = typeof obj[i] === 'object' ?
            cloneObj(obj[i]) : obj[i];
    }
}
return newobj;
};

//克隆
var obj2=clone(obj);
Wenn ich einige Parameter im Inneren ändern möchte, kann ich die folgende Methode verwenden

obj2.title.text = "XXX";
extend():

Verwenden Sie die Methode „extend()“: Erweiterung bedeutet, dass eine oder mehrere Eigenschaften auf ein Objekt erweitert werden können

, um einen Vereinigungseffekt zu erzielen auf ein Objekt entspricht dem Klonen

$.extend(true,obj,{});
und der Code zum Erzielen des Vereinigungseffekts lautet wie folgt

 obj2 = $.extend(true,obj,obj2);
Wenn Sie einen Parameter überschreiben möchten, können Sie und für wählen Dieselbe Override-Methode wie clone(), Sie können auch den folgenden Code vor

obj2 = $.extend(true,obj,obj2);

:

Das obige ist der detaillierte Inhalt vonVergleich und Verwendung von clone() und extension() in jQuery. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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