Heim  >  Artikel  >  Web-Frontend  >  Wie kopiere ich ein Objekt in js? (Bild- und Text-Tutorial)

Wie kopiere ich ein Objekt in js? (Bild- und Text-Tutorial)

亚连
亚连Original
2018-05-18 16:21:301609Durchsuche

Im Folgenden erfahren Sie, wie Sie ein Objekt in js kopieren.

Methode 1:

Durchlaufen Sie die Eigenschaften des ursprünglichen Objekts und weisen Sie sie einem neuen Objekt zu.

//深复制对象方法    
var cloneObj = function (obj) {  
    var newObj = {};  
    if (obj instanceof Array) {  
        newObj = [];  
    }  
    for (var key in obj) {  
        var val = obj[key];  
        //newObj[key] = typeof val === 'object' ? arguments.callee(val) : val; //arguments.callee 在哪一个函数中运行,它就代表哪个函数, 一般用在匿名函数中。  
        newObj[key] = typeof val === 'object' ? cloneObj(val): val;  
    }  
    return newObj;  
};  
//测试    
var obj = {a:function(){console.log(this.b.c)},b:{c:1}},//设置一个对象  
newObj = cloneObj(obj);//复制对象  
newObj.b.c=2;//给新对象赋新值  
obj.a();//1,不受影响  
newObj.a();//2

Methode 2:

Serialisieren Sie das Objekt und analysieren Sie es dann zurück. Wenn das Objekt eine Funktion enthält, kann es nicht korrekt kopiert werden

var obj = {a:1,b:2}  
var newObj = JSON.parse(JSON.stringify(obj));  
newObj.a=3;  
console.log(obj);  
console.log(newObj);

Methode 3:

Verwenden Sie für die Methode des Array-Objekts die Array-Methode, um ein leeres Array zu verknüpfen.

var a=[1,2,3];  
var b=a;  
var c=[].concat(a);  
a.push(4);  
console.log(b);  
console.log(c);

Das Obige habe ich für alle zusammengestellt. Ich hoffe, dass es in Zukunft für alle hilfreich sein wird.

Verwandte Artikel:

JS behält zwei Dezimalstellen für den eingegebenen Nummernbestätigungscode bei

JS behält eine Ziffer und verschiebt sie rückwärts Es sei denn, die Zahl

Zusammenfassung der JS-Seitenaktualisierungsmethode

Das obige ist der detaillierte Inhalt vonWie kopiere ich ein Objekt in js? (Bild- und Text-Tutorial). 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