//克隆对象 无法克隆或异常 返回undefined
var clone = function (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 = [];
        for (var i = 0, len = obj.length; i < len; ++i) {
            copy[i] = clone(obj[i]);
        }
        return copy;
    }
    //Handle Object
    if (obj instanceof Object) {
        var copy = {};
        for (var attr in obj) {
            if (obj.hasOwnProperty(attr)) copy[attr] = clone(obj[attr]);
        }
        return copy;
    }
    //throw new Error("无法克隆：" + obj);
    return undefined;
}
exports.clone = clone;