美文网首页
js深克隆

js深克隆

作者: txwslyf | 来源:发表于2017-08-24 15:55 被阅读0次
    //返回传递给他的任意对象的类
        function isClass(o) {
            return Object.prototype.toString.call(o).slice(8, -1);
        }
    
        //深度克隆
        function deepClone(obj) {
            var result, oClass = isClass(obj);
            //确定result的类型
            if (oClass === "Object") {
                result = {};
            } else if (oClass === "Array") {
                result = [];
            } else {
                return obj;
            }
            for (key in obj) {
                if (obj.hasOwnProperty(key)) {
                    var copy = obj[key];
                    if (isClass(copy) === "Object") {
                        result[key] = arguments.callee(copy);//递归调用
                    } else if (isClass(copy) === "Array") {
                        result[key] = arguments.callee(copy);
                    } else {
                        result[key] = obj[key];
                    }
                }
            }
            return result;
        }

    相关文章

      网友评论

          本文标题:js深克隆

          本文链接:https://www.haomeiwen.com/subject/orsedxtx.html