zoukankan      html  css  js  c++  java
  • js-对象深度克隆方法

    学习收藏。

    1、来自http://www.cnblogs.com/yxz-turing/p/4784861.html

    function cloneObj(obj){
        var str, newobj = obj.constructor === Array ? [] : {};
        if(typeof obj !== 'object'){
            return;
        } else if(window.JSON){
            str = JSON.stringify(obj), //序列化对象
            newobj = JSON.parse(str); //还原
        } else {//如果不支持以上方法
            for(var i in obj){
                newobj[i] = typeof obj[i] === 'object' ? cloneObj(obj[i]) : obj[i]; 
            }
        }
        return newobj;
    };

    2、

    function clone(Obj) {
        var buf;   
        if (Obj instanceof Array) {
            buf = [];  // 创建一个空的数组
            var i = Obj.length;
            while (i--) {
                buf[i] = clone(Obj[i]);
            }
            return buf;
        } else if (Obj instanceof Object){
            buf = {};  // 创建一个空对象
            for (var k in Obj) {  // 为这个对象添加新的属性
                buf[k] = clone(Obj[k]);
            }
            return buf;
        }else{
            return Obj;
        }
    }


     

  • 相关阅读:
    等式
    Lemon 评测软件用法
    同花顺
    浅谈二分图的最大匹配和二分图的KM算法
    LCT总结
    5.30模拟赛
    树上斜率优化
    5.22 noip模拟赛
    KMP,HASH,Trie,AC自动机
    splay总结
  • 原文地址:https://www.cnblogs.com/zczhangcui/p/6393239.html
Copyright © 2011-2022 走看看