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/>

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

  • 相关阅读:
    django 中 null=True 和 blank=True的区别!
    利用js代码屏蔽f12,右键,粘贴,复制,剪切,选中,操作!!秀!秀!秀!
    jupyter notebook快速入门教程
    锁相关
    事务相关
    索引
    体系结构
    数据类型
    字符集
    部署规范
  • 原文地址:https://www.cnblogs.com/Eileen-lu/p/13535709.html
Copyright © 2011-2022 走看看