• 什么是浅拷贝?什么是深拷贝?


    解决这个问题的前提是:了解过js的变量存储类型、赋值。

    懂的就跳过

    ==============

    变量存储类型分两类

    ①基本类型:直接存储在栈中的数据。(字符串、布尔值、未定义、数字、null)

    ②引用类型:将该对象引用地址存储在中,然后对象里面的数据存放在中。(数组、对象、函数)

    这里解释一下为什么null是基本类型:有人说他用type of打印出来不是oject吗?

    null只是一个空指针对象,没有数据。根据引用类型特点可以看一下是否符合。

    =================

    回到我们的问题上

    说说深拷贝和浅拷贝还有赋值的区别,这样好理解

    浅拷贝:也就是拷贝A对象里面的数据,但是不拷贝A对象里面的子对象

    深拷贝:会克隆出一个对象,数据相同,但是引用地址不同(就是拷贝A对象里面的数据,而且拷贝它里面的子对象)

    赋值:获得该对象的引用地址

     浅拷贝和深拷贝的区别

     三者的区别

    下面用实例来说明

    赋值特点说明:

     

     赋值,疑惑点来自于下图。

    浅拷贝特点说明:

    obj还是上面的

    深拷贝说明:

     
    第一种方法的缺陷在于函数不能拷贝
     
    第二种也有其他的问题,这里不深入剖析了。主要就是解释这三者的关系


    原文链接:https://www.jianshu.com/p/56598f2ac42e

  • 相关阅读:
    秋意浓浓回成都2月杂记
    验证表单的js代码段
    C#算法小程序(1)
    C#数据结构之单向链表
    Excel VBA编程的常用代码
    我的漫漫系分路
    2007年下半年系统分析师上午试卷及参考答案
    「2014年間休日カレンダー」のご案内
    Eclipse的几点使用技巧
    沧海一粟小组(第一次作业)
  • 原文地址:https://www.cnblogs.com/1549983239yifeng/p/14352342.html
Copyright © 2020-2023  润新知