当前位置: 首页 > news >正文

JavaScript 深克隆

深克隆
function judgeType(arg){//判断js数据类型
   return Object.prototype.toString.call(arg).slice(8,-1);
}

function deepCloneNick(obj){//深克隆
    var result,oClass=judgeType(obj);
    //确定result的类型
    if(oClass==="Object"){
        result={};
    }else if(oClass==="Array"){
        result=[];
    }else{
        return obj;
    }
    for(var key in obj){
        var copy=obj[key];
        if(judgeType(copy)==="Object"||"Array"){
            //result[key]=deepCloneNick(copy);//递归调用 避免函数名改变 改成下面一句
            result[key]=arguments.callee(copy);
        }else{
            result[key]=obj[key];
        }
    }
    return result;
}
console.log(deepCloneNick({a:[1,2],b:3}));
console.log(deepCloneNick([{a:'a'},2]));

  

相关文章:

  • MAC将根目录文件夹的权限赋给用户
  • CSS中link和@import的区别是:
  • CentOS工作机 - google chrome
  • crontab执行失败的多种原因
  • 分布式文件系统FastDFS 集群安装
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • oracle 10g 如何用srvctl 添加数据库资源到cluster中
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • SQL Server -- T-SQL 编码标准
  • fastDFS客户端简单入门使用及接口文档
  • Python 学习笔记【10】练习:购物车程序
  • CSS3实现元素旋转
  • WebApi获取请求url主机
  • role=, .sr-only 的作用
  • Underscore 整体架构浅析
  • php的引用
  • [译]前端离线指南(上)
  • [译]如何构建服务器端web组件,为何要构建?
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • create-react-app项目添加less配置
  • Gradle 5.0 正式版发布
  • JavaScript 奇技淫巧
  • Java超时控制的实现
  • React Transition Group -- Transition 组件
  • Redux 中间件分析
  • spring-boot List转Page
  • Sublime Text 2/3 绑定Eclipse快捷键
  • Vim Clutch | 面向脚踏板编程……
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 浮动相关
  • 给初学者:JavaScript 中数组操作注意点
  • 技术胖1-4季视频复习— (看视频笔记)
  • 前端面试题总结
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 用Python写一份独特的元宵节祝福
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 选择阿里云数据库HBase版十大理由
  • $.ajax()方法详解
  • (C语言)fgets与fputs函数详解
  • (C语言)逆序输出字符串
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (力扣)1314.矩阵区域和
  • (三分钟)速览传统边缘检测算子
  • (万字长文)Spring的核心知识尽揽其中
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .md即markdown文件的基本常用编写语法
  • .naturalWidth 和naturalHeight属性,
  • .NET Core跨平台微服务学习资源