美文网首页
js深拷贝和浅拷贝

js深拷贝和浅拷贝

作者: 海豚先生的博客 | 来源:发表于2020-06-16 14:52 被阅读0次

    浅拷贝

    Object.assign(target, source1, source2)

    深拷贝

    1 deepcopy

          function deepCopy(obj, newObj) {
            newObj = newObj || {};
            for (var key in obj) {
              if (typeof obj[key] === "object") {
                newObj[key] = Array.isArray(obj[key]) ? [] : {};
                deepCopy(obj[key], c[key]);
              } else {
                newObj[key] = obj[key];
              }
            }
            return newObj;
          }
    

    2 jQuery的$.extend()
    3 JSON.parse(JSON.stringify(obj));
    4 lodash_.cloneDeep()
    5 clone = structuredClone(original)

    • 对数组的深拷贝
    let box = list.slice();
    let box = [].concat(list); 
    let box = [...list];
    let box = Array.from(list);
    

    相关文章

      网友评论

          本文标题:js深拷贝和浅拷贝

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