2019-11-27

JS四种对象深拷贝的方法

1.JSON.parse(JSON.stringify(obj));

局限性:当值为undefined、function、symbol 会在转换过程中被忽略。。。

2.原生js实现:

function deepCopy(obj) {

      varresult = Array.isArray(obj) ? [] : {};

      for(varkeyin obj) {

        if (obj.hasOwnProperty(key)) {

          if(typeofobj[key] ==='object' && obj[key]!==null) {

            result[key] = deepCopy(obj[key]);  //递归复制

          } else {

            result[key] = obj[key];

          }

        }

      }

      return result;

    }

3.JQ方法:$.extend( true, target, ...sources);

你可能感兴趣的:(2019-11-27)