当前位置:网站首页>用简单方法实现对象的深克隆封装js

用简单方法实现对象的深克隆封装js

2022-06-22 05:24:00 Best_卡卡

前言

浅度克隆 :基本类型为值传递,对象仍为引用传递。
深度克隆 :所有元素或属性均完全克隆,并于原引用类型完全独立,
即,在后面修改对象的属性的时候,原对象不会被修改。
简单理解:对象保存在固定位置,浅克隆引用该位置,深克隆是新位置完全复制该对象

实现

// 判断arr是否为一个数组,返回一个bool值
function isArray (arr) {
    
    return Object.prototype.toString.call(arr) === '[object Array]';  
}
// 深度克隆
function deepClone (obj) {
      
    if(typeof obj !== "object" && typeof obj !== 'function') {
    
        return obj;        //原始类型直接返回
    }
    var o = isArray(obj) ? [] : {
    }; 
    for(i in obj) {
      
        if(obj.hasOwnProperty(i)){
     
            o[i] = typeof obj[i] === "object" ? deepClone(obj[i]) : obj[i]; 
        } 
    } 
    return o;
}
原网站

版权声明
本文为[Best_卡卡]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_43909743/article/details/118762258