当前位置 : 主页 > 网络编程 > JavaScript >

js实现对象的深拷贝

来源:互联网 收集:自由互联 发布时间:2021-07-03
1. [代码] [JavaScript]代码 function isClass(obj) { if(obj===null) return "NULL"; if(obj===undefined) return "Undefined"; return Object.prototype.toString.call(obj).slice(8,-1); } function deepClone(obj) { var result,oClass=isClass(obj);

1. [代码][JavaScript]代码    

 function isClass(obj)
        {
            if(obj===null)
            return "NULL";
            if(obj===undefined)
            return "Undefined";
            return Object.prototype.toString.call(obj).slice(8,-1);
        }

        function deepClone(obj)
        {
            var result,oClass=isClass(obj);
            if(oClass==="Object")
            {
                result={};
            }
            else if(oClass==="Array")
            {
                result=[];
            }
            else
            {
                return obj;
            }
            for(key in obj)
            {
                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]=copy;
                }

            }
            return result;
        }
网友评论