js深度克隆对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js深度克隆对象相关的知识,希望对你有一定的参考价值。

js深度克隆对象

js深度克隆对象简单的记录一下,如下代码:

var obj = {
  typeOf: function(obj) {
    const toString = Object.prototype.toString;
    const 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‘
    };
    return map[toString.call(obj)];
  },
  deepCopy(data) {
    const t = this.typeOf(data);
    let o,
      i;
    if (t === ‘array‘) {
      o = [];
    } else if (t === ‘object‘) {
      o = {};
    } else {
      return data;
    }
    if (t === ‘array‘) {
      for (let i = 0; i < data.length; i++) {
        o.push(this.deepCopy(data[i]));
      }
    } else if (t === ‘object‘) {
      for (i in data) {
        o[i] = this.deepCopy(data[i]);
      }
    }
    return o;
  }
};

以上是关于js深度克隆对象的主要内容,如果未能解决你的问题,请参考以下文章

JSON对象实现深度克隆

JS的深度克隆,利用构造函数原型深度克隆

Js深度克隆解析

谈谈js中深度克隆和浅度克隆

深度克隆---js对象引用

JS对象的深度克隆