Heim > Web-Frontend > js-Tutorial > Hauptteil

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

巴扎黑
Freigeben: 2017-06-25 10:03:01
Original
1518 Leute haben es durchsucht

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

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

};
Nach dem Login kopieren

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

 var obj2 = obj.clone();
Nach dem Login kopieren
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);
Nach dem Login kopieren
Wenn ich einige Parameter im Inneren ändern möchte, kann ich die folgende Methode verwenden

obj2.title.text = "XXX";
Nach dem Login kopieren
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,{});
Nach dem Login kopieren
und der Code zum Erzielen des Vereinigungseffekts lautet wie folgt

 obj2 = $.extend(true,obj,obj2);
Nach dem Login kopieren
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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!