美文网首页
js 深拷贝

js 深拷贝

作者: 流动码文 | 来源:发表于2018-01-23 20:56 被阅读13次
    function deepClone (obj) {
      var copy;
    
      // Handle the 3 simple types, and null or undefined
      if (null == obj || "object" != typeof obj) return obj;
    
      // Handle Date
      if (obj instanceof Date) {
        copy = new Date();
        copy.setTime(obj.getTime());
        return copy;
      }
    
      // Handle Array
      if (obj instanceof Array) {
        copy = [];
        for (var i = 0, len = obj.length; i < len; i++) {
          copy[i] = deepClone(obj[i]);
        }
        return copy;
      }
    
      // Handle Object
      if (obj instanceof Object) {
        copy = {};
        for (var attr in obj) {
          if (obj.hasOwnProperty(attr)) copy[attr] = deepClone(obj[attr]);
        }
        return copy;
      }
    
      throw new Error("Unable to copy obj! Its type isn't supported.");
    }
    
    

    相关文章

      网友评论

          本文标题:js 深拷贝

          本文链接:https://www.haomeiwen.com/subject/kueeaxtx.html