Maison  >  Article  >  interface Web  >  Comment copier un objet en js ? (Tutoriel image et texte)

Comment copier un objet en js ? (Tutoriel image et texte)

亚连
亚连original
2018-05-18 16:21:301669parcourir

Voici comment copier un objet en js. Les étudiants intéressés peuvent y jeter un œil.

Méthode 1 :

Parcourez les propriétés de l'objet d'origine et attribuez-les à un nouvel objet.

//深复制对象方法    
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

Méthode 2 :

Sérialisez l'objet, puis analysez-le à nouveau. S'il y a une fonction dans l'objet, elle ne peut pas être copiée correctement

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

Méthode 3 :

Pour la méthode de l'objet tableau, utilisez la méthode tableau pour concaténer un tableau vide

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

Ce qui précède est ce que j'ai compilé pour tout le monde, j'espère que cela sera utile. tout le monde dans le futur.

Articles connexes :

JS conserve deux décimales pour saisir le code de vérification du numéro

JS conserve un chiffre et le déplace en arrière Sauf si le numéro

Résumé de la méthode d'actualisation de la page JS

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn