js 拷贝

来源:互联网 发布:java多线程set redis 编辑:程序博客网 时间:2024/05/20 13:04
function cloneObject(obj){    // Handle the 3 simple types, and null or undefined    if (null === obj || "object" !== typeof obj) return obj;    // Handle Date    if (obj instanceof Date) {        var copy = new Date();        copy.setTime(obj.getTime());        return copy;    }    // Handle Array    if (obj instanceof Array) {        var copy = obj.slice(0);        return copy;    }    // Handle Object    if (obj instanceof Object) {        var copy = {};        for (var attr in obj) {            if (obj.hasOwnProperty(attr))            {                copy[attr] = this.cloneObject(obj[attr]);            }        }        return copy;    }    throw new Error("Unable to copy obj! Its type isn't supported.");}