文档章节

深拷贝

L
 LorinLuo
发布于 2017/07/06 10:25
字数 85
阅读 14
收藏 0

       //递归拷贝

        function deepClone(initalObj, finalObj) {
            var obj = finalObj || {}, i, prop;

            for (i in initalObj) {
                prop = initalObj[i];
         
                //避免相互引用对象导致死循环,如initalObj.a = initalObj的情况
                if(prop === obj) {
                    continue;
                }

                if (typeof prop === 'object') {
                    obj[i] = (prop.constructor === Array) ? [] : {};
                    arguments.callee(prop, obj[i]);
                } else {
                    obj[i] = prop;
                }
            }
            return obj;
        }

    //JSON特性    (会丢掉constructor属性)

    function deepClone(initalObj) {
            var obj = {};

            try {
                obj = JSON.parse(JSON.stringify(initalObj));
            }
            
            return obj;
     }

© 著作权归作者所有

共有 人打赏支持
上一篇: 模拟new的过程
下一篇: 设计模式学习
L
粉丝 18
博文 166
码字总数 116776
作品 0
成都
程序员
私信 提问

暂无文章

谁是你的创业竞争对手?

简评:面对投资人,你该如何回答有关竞争对手的问题?你可能认为自己根本没有竞争对手,或者你正处于一片红海之中,又或者你只是一个“抄袭者”...不管怎么样,你需要对整个市场深度思考,永...

极光推送
21分钟前
0
0
SpringBoot 优雅的整合 Shiro

Apache Shiro是一个功能强大且易于使用的Java安全框架,可执行身份验证,授权,加密和会话管理。借助Shiro易于理解的API,您可以快速轻松地保护任何应用程序 - 从最小的移动应用程序到最大的...

木云凌
22分钟前
1
0
难受, LSTM

夫人撒旦供奉的是

王氾超-E_Convorn_Ares
22分钟前
1
0
Centos7 中没有ifconfig命令解决办法

惊涛随笔 centos7中没有安装ifconfig命令的解决方法 初装centos 7时,运行config报 command not found 错误,我在网上找了大量资料,下面的资料中查找原因和解决方式最详细,能很好的解决这个...

rootliu
23分钟前
0
0
IDEA 下,老司机教你如何 debug lambda

目前程序员市场环境下,Java 党的 lamda 语法已经无处不在,比如大家熟悉的 Spring 5.x 框架,lambda 满天飞啊! 这里说一下,为什么要玩 lambda 这种写法, 他与面向对象有什么不同。 1. 面...

Ryan-瑞恩
29分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部