zoukankan      html  css  js  c++  java
  • JavaScript高级 面向对象(7)--深拷贝与浅拷贝

    说明(2017.3.31):

    1. 画图:

    1     var car = {name:"法拉利"};
    2     var p = {name: "张三", age: "19", car: car};

    1     // var pCopy = p;这个不是拷贝,没有对对象做任何拷贝行为
    2     var pCopy = {};
    3     pCopy.name = p.name;
    4     pCopy.age = p.age;
    5     pCopy.car = p.car;

     2. 什么是深拷贝,什么是浅拷贝:

      深拷贝:拷贝的时候,将数据的所有引用都拷贝一份。

      浅拷贝:拷贝的时候,只对属性进行拷贝。

      拷贝:复制一份,指将对象数据复制。(var pCopy = p这个不是拷贝,只是复制了引用)

      深拷贝与浅拷贝的区别就是,拷贝完之后,里面的引用类型是否是独立的一份!

    1     var pCopy = {};
    2     pCopy.name = p.name;
    3     pCopy.age = p.age;
    4     pCopy.car = {};
    5     pCopy.car.name = car.name
    6     // 下面两行是验证深拷贝之后,修改备份的引用类型的值,是否会改变原引用的值
    7     pCopy.car.name = 123;
    8     console.log(car.name);

  • 相关阅读:
    C#设计模式总结
    【23】备忘录模式(Memento Pattern)
    【22】访问者模式(Visitor Pattern)
    mycat 分库
    mysql的存储过程
    mysql的视图
    mysql的索引
    mysql权限操作
    mysql事务操作
    mysql常用函数
  • 原文地址:https://www.cnblogs.com/Jacklovely/p/6650287.html
Copyright © 2011-2022 走看看