美文网首页
对象深拷贝和浅拷贝

对象深拷贝和浅拷贝

作者: Sketch | 来源:发表于2017-10-31 20:04 被阅读5次

    浅拷贝

    function shallowCopy(oldObj) {
      var newObj = {};
      for (var i in oldObj) {
        if (oldObj.hasOwnProperty(i)) {
          newObj[i] = oldObj[i];
        }
      }
      return newObj;
    }
    

    深拷贝

    深拷贝的递归方法

    function deepCopy(oldObj) {
      var newObj = {};
    
      for (var key in oldObj) {
        if (typeof oldObj[key] === 'object' && typeof oldObj[key] !== null) {
          newObj[key] = deepCopy(oldObj[key]);
        } else {
          newObj[key] = oldObj[key];
        }
      }
      return newObj;
    }
    

    深拷贝的JSON方法

    newObj = JSON.parse(JSON.stringify(oldObj));
    

    相关文章

      网友评论

          本文标题:对象深拷贝和浅拷贝

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