深拷贝

作者: Nkero | 来源:发表于2019-07-19 15:01 被阅读0次

    方法一:JSON.stringfy()和JSON.parse()

    var syb = Symbol('obj');
    var person = {
       name :'tino',
       say: function(){
          console.log('hi');
       },
       ok: syb,
       un: undefined
    }
    var copy = JSON.parse(JSON.stringify(person))
    

    缺点为:当值为undefined、function、symbol时会导致属性丢失。

    方法二:

    function deepCopy(obj) {
          var result = Array.isArray(obj) ? [] : {};
          for(var key in obj) {
            if (obj.hasOwnProperty(key)) {
              if(typeof obj[key] ==='object') {
                result[key] = deepCopy(obj[key]);  //递归复制
              } else {
                result[key] = obj[key];
              }
            }
          }
          return result;
    }
    

    相关文章

      网友评论

          本文标题:深拷贝

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