博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深复制如此简单
阅读量:6528 次
发布时间:2019-06-24

本文共 789 字,大约阅读时间需要 2 分钟。

how to write a deepClone,this is an expamle

function deepClone(obj){    if(obj === null) return null; //如果复制的是null 则直接返回    if(typeof obj !== 'object') return obj ; //复制的如果不是对象,直接返回,包括(string  number function。。。)    if(obj instanceof RegExp) return new RegExp(obj); //如果是一个正则对象,那么返回一个正则对象    if(obj instanceof Date) return new Date(obj);//如果是一个 Date 对象 , 返回一个date 对象    let newObj = new obj.constructor(); //这里的newObj 是直接取得 obj 的构造函数 , [].constructor() 是[],{}.constructor() 是 {}    for(let key in obj){        newObj[key] = deepClone(obj[key]); //复制的属性有可能还是一个对象,因此使用递归    }    return newObj;}let obj = {person:{name:'alex'}}let a = deepClone(obj);obj.person.name = 'blex';console.log(a); //{ person: { name: 'alex' } } a 的值没有改变,深复制成功复制代码

转载于:https://juejin.im/post/5b5c34a3f265da0fa759df49

你可能感兴趣的文章
iOS.ObjC.Basic-Knowledge
查看>>
iOS.ReactNative-3-about-viewmanager-uimanager-and-bridgemodule
查看>>
透视校正插值
查看>>
Cobertura代码覆盖率测试
查看>>
【selenium学习笔记一】python + selenium定位页面元素的办法。
查看>>
Linux禁止ping
查看>>
【Matplotlib】 标注一些点
查看>>
[AX]乐观并发控制Optimistic Concurrency Control
查看>>
自定义类加载器
查看>>
MySQL数据库事务各隔离级别加锁情况--Repeatable Read && MVCC(转)
查看>>
C++构造函数例程
查看>>
把某一列值转换为逗号分隔字符串
查看>>
DLL,DML,DCL,TCL in Oracle
查看>>
SSE指令集学习:Compiler Intrinsic
查看>>
两种attach to process的方法
查看>>
WCF如何使用X509证书(安装和错误)(二)
查看>>
Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
查看>>
iOS中--NSArray调用方法详解 (李洪强)
查看>>
java异步操作实例
查看>>
Centos6.8防火墙配置
查看>>