zoukankan      html  css  js  c++  java
  • JS

    function mottoClone (obj) {
      if (obj === null || typeof obj !== 'object') return obj;
      if (obj instanceof Boolean) return new Boolean(obj.valueOf());
      if (obj instanceof Number) return new Number(obj.valueOf());
      if (obj instanceof String) return new String(obj.valueOf());
      if (obj instanceof RegExp) return new RegExp(obj.valueOf());
      if (obj instanceof Date) return new Date(obj.valueOf());
      var cpObj = obj instanceof Array ? [] : {};
      for (var key in obj) cpObj[key] = myClone(obj[key]);
      return cpObj;
    }

    支持的数据类型或格式有:Boolean,Number,String,RegExp,Date,Function,Array,JSON
    支持深拷贝(循环迭代),如:
    var obj = {
    id: 1,
    name: 'xxx',
    sayName: function () {
    console.log('my name is' + this.name);
    },
    childs: [
    {},
    {},
    ...
    ],
    opts: {
    xxx: [],
    ...
    },
    ...
    };
    var newObj = mottoClone(obj);
  • 相关阅读:
    第二章例2-9
    第二章例2-8
    第二章例2-7
    第二章例2-6
    第二章例2-5
    第二章例2-4
    第二章例2-3
    第二章例2-2
    第二章例2-1
    第一章例1-2
  • 原文地址:https://www.cnblogs.com/andremao/p/7155533.html
Copyright © 2011-2022 走看看