js 对象深拷贝

2021-03-30 07:25

阅读:660

标签:rip   fine   div   prot   data   undefined   class   for   lin   

const getObjType = function (obj){

    var toString = Object.prototype.toString;
    var map = {
        ‘[object Boolean]‘: ‘boolean‘,
        ‘[object Number]‘: ‘number‘,
        ‘[object String]‘: ‘string‘,
        ‘[object Function]‘: ‘function‘,
        ‘[object Array]‘: ‘array‘,
        ‘[object Date]‘: ‘date‘,
        ‘[object RegExp]‘: ‘regExp‘,
        ‘[object Undefined]‘: ‘undefined‘,
        ‘[object Null]‘: ‘null‘,
        ‘[object Object]‘: ‘object‘
    };
    if (obj instanceof Element) {
        return ‘element‘;
    }
    return map[toString.call(obj)];
};

const deepClone = function(data) {
    var type = getObjType(data);
    var obj;
    if (type === ‘array‘) {
        obj = [];
    } else if (type === ‘object‘) {
        obj = {};
    } else {
        //不再具有下一层次
        return data;
    }
    if (type === ‘array‘) {
        for (var i = 0, len = data.length; i 
调用:
deepClone({})     //object
deepClone([])     //array

  

 

js 对象深拷贝

标签:rip   fine   div   prot   data   undefined   class   for   lin   

原文地址:https://www.cnblogs.com/wangyunhui/p/12598931.html


评论


亲,登录后才可以留言!