码迷,mamicode.com
首页 > Web开发 > 详细

JS-实用方法整理

时间:2018-04-08 14:39:47      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:log   fun   script   实用   error   return   ted   exp   ++i   

// 深拷贝

    function deepClone(obj) {
        if (obj == null || typeof obj !== ‘object‘) {
            return obj;
        }
        switch (Object.prototype.toString.call(obj)) {
            case ‘[object Array]‘:
                {
                    var result = new Array(obj.length);
                    for (var i = 0; i < result.length; ++i) {
                        result[i] = deepClone(obj[i]);
                    }
                    return result;
                }

            case ‘[object Error]‘:
                {
                    var result = new obj.constructor(obj.message);
                    result.stack = obj.stack; // hack...
                    return result;
                }

            case ‘[object Date]‘:
            case ‘[object RegExp]‘:
            case ‘[object Int8Array]‘:
            case ‘[object Uint8Array]‘:
            case ‘[object Uint8ClampedArray]‘:
            case ‘[object Int16Array]‘:
            case ‘[object Uint16Array]‘:
            case ‘[object Int32Array]‘:
            case ‘[object Uint32Array]‘:
            case ‘[object Float32Array]‘:
            case ‘[object Float64Array]‘:
            case ‘[object Map]‘:
            case ‘[object Set]‘:
                return new obj.constructor(obj);

            case ‘[object Object]‘:
                {
                    var keys = Object.keys(obj);
                    var result = {};
                    for (var i = 0; i < keys.length; ++i) {
                        var key = keys[i];
                        result[key] = deepClone(obj[key]);
                    }
                    return result;
                }

            default:
                {
                    throw new Error("Unable to copy obj! Its type isn‘t supported.");
                }
        }
    }

  

JS-实用方法整理

标签:log   fun   script   实用   error   return   ted   exp   ++i   

原文地址:https://www.cnblogs.com/xbgTitle/p/8744405.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!