Heim > Artikel > Web-Frontend > Diskussion über JS-Deep-Copy-Beispiele
Deep Copy dient zum Kopieren des übergeordneten Objekts in das untergeordnete Objekt, und der Speicher und die nachfolgenden Vorgänge der beiden wirken sich nicht gegenseitig aus. Dieser Artikel teilt Ihnen hauptsächlich die Diskussion von js Deep Copy-Beispielen mit und hofft, allen zu helfen.
(1) Methode 1
function copy(obj1,obj2){ var obj2=obj2||{}; for(var name in obj1){ if(typeof obj1[name] === "object"){ //先判断一下obj[name]是不是一个对象 obj2[name]= (obj1[name].constructor===Array)?[]:{}; copy(obj1[name],obj2[name]); //然后来无限递归 }else{ obj2[name]=obj1[name]; //如果不是对象,直接赋值。 } } return obj2; }
Anwendung:
var obj1 = { se:[{a:1,b:2},{c:3}], sa:{a:"g"}, sc:function(){console.log(1)} }var n_obj = copy(obj1,{}) console.log(n_obj)
(2) Methode 2
function d_clone(obj) { return Object.getPrototypeOf(Object.create(obj)); }
Anwendung :
var obj1 = { se:[{a:1,b:2},{c:3}], sa:{a:"g"}, sc:function(){console.log(1)} }var n2_obj = d_clone(obj1); console.log(n2_obj)
(3) Methode 3
JSON.parse(JSON.stringify(obj)
Erklärung: Die Attribute von obj können keine Funktionen enthalten.
(1) Methode 1
function copy(obj1,obj2){ var obj2=obj2||{}; for(var name in obj1){ if(typeof obj1[name] === "object"){ //先判断一下obj[name]是不是一个对象 obj2[name]= (obj1[name].constructor===Array)?[]:{}; copy(obj1[name],obj2[name]); //然后来无限递归 }else{ obj2[name]=obj1[name]; //如果不是对象,直接赋值。 } } return obj2; }
Anwendung:
var obj1 = { se:[{a:1,b:2},{c:3}], sa:{a:"g"}, sc:function(){console.log(1)} }var n_obj = copy(obj1,{}) console.log(n_obj)
(2) Methode 2
function d_clone(obj) { return Object.getPrototypeOf(Object.create(obj)); }
Anwendung :
var obj1 = { se:[{a:1,b:2},{c:3}], sa:{a:"g"}, sc:function(){console.log(1)} }var n2_obj = d_clone(obj1); console.log(n2_obj)
(3) Methode 3
JSON.parse(JSON.stringify(obj)
Erklärung: Die Attribute von obj können keine Funktionen enthalten.
Verwandte Empfehlungen:
Verwandte Empfehlungen:
Vertiefendes Verständnis der JavaScript-Deep-Copy-Leistung
Was ist js Deep Copy und Shallow Copy und ihre Implementierung
Der Unterschied zwischen JavaScript Shallow Copy und Deep Copy
Das obige ist der detaillierte Inhalt vonDiskussion über JS-Deep-Copy-Beispiele. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!