zoukankan      html  css  js  c++  java
  • js的浅拷贝和深拷贝

    一、数组:

    1.浅拷贝

      直接赋值:let result = res;

    2.深拷贝

      2.1  slice()方法

        let newList = res.slice();

      2.2  concat()方法

        let newList = res.concat();

      slice()和concat()这两个方法,仅适用于对不包含引用对象的一维数组的深拷贝

      2.3 JSON.parse 、JSON.stringify结合

        let result = JSON.parse(JSON.stringify(res)); <-- 数组夹杂对象用

        (先JSON.stringify() 转为json字符串, 再JSON.parse() 转为json数组)

        缺点:无法拷贝function

    二、对象拷贝

     Object.create()方法

     复制对象存在于Object原型prototype中

    var obj = {
        x: 1,
        y: {
            a: 1,
            b: 0,
            c: [1, 2, 3]
        }
    };
    
    var obj2 = Object.create(obj);
    console.log(obj2 == obj); //false
    console.log(obj2);
    

    在这里插入图片描述

    具体详细可参考:https://www.cnblogs.com/hjson/p/10243806.html

    作者: 莯汐

    出处: < http://www.cnblogs.com/Eileen-lu/>

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在页面明显位置给出原文链接。

  • 相关阅读:
    关于XML文档
    Why sql is called structured query language?1
    UML学习---交互
    C#为什么不采用多继承:
    url中
    array
    hard
    构造函数返回值
    布局容器layout Container
    k8s的概念
  • 原文地址:https://www.cnblogs.com/Eileen-lu/p/13535709.html
Copyright © 2011-2022 走看看