js原生克隆方法

原生js克隆封装

原生语法克隆

//为了看得清楚一点,参数变量属性 命名都是随意
//主要思路[五点]
//1,遍历对象
//2,判断是不是原始值 typeof(), instanceof, toString, constructor[这些方法都可以]
//3,判断是数组还是对象
//4,建立相应的数组或对象
//5,使用递归
var obj = {
   aa : "woani",
   bb : '34',
   cc : [1,2,3,4,5],
   dd : {
       ai : "我最帅",
       ei : ["22","33","44"],
       li : {
           ad : "刘德华"
       }
   }
}
function copy (a,b){
    let b = b || {},
        arr = "[object Array]",
        fn = Object.prototype.toString;
        for(var prop in a){
            if(a.hasOwnProperty(prop)){
                if(typeof(a[prop]) === "object" && a[prop] !== "null"){
                     b[prop] = fn.call(a[prop]) === arr ? [] : {};
                     test(a[prop], b[prop]);
                }else{
                    b[prop] = a[prop]
                }
            }
        } 
      return b;  
}
let demo = copy(obj)



json方法克隆

const Obj = JSON.parse(JSON.stringify(Obj_list));

你可能感兴趣的:(js,js)