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

    1. var model={name:"boy",age:13};  
    2. var CopyModel=model;  
    3. console.log(CopyModel.name);  
    4. model.name="girl";  
    5. console.log(CopyModel.name);  

    输出值:

    CopyModel复制model对象,修改model对象,再输出CopyModel对象,结果却是修改后model对象的值,为什么会这样?

    "="就是浅拷贝,浅拷贝指向的内存都是同一个内存的地址:

    model和CopyModel的值指向的是同一个内存。

    而我们并不需要这样的浅拷贝,深拷贝是在内存中开辟一个新的内存地址:

    1.JSON.parese(JSON.stringify(model));(这个实现的缺点是不能拷贝对象中的方法,而且连方法都会丢失。)

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. var CopyModel=JSON.parse(JSON.stringify(model));  

    2.通过JQuery的extend对象

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. var CopyModel=$.extend(true, {}, model);  
  • 相关阅读:
    第十二周作业
    第十一周作业
    第十一次上机作业
    第十次上机作业
    第九周上机作业
    第八周作业
    第八次上机练习
    第七周作业
    第八周
    第六周作业
  • 原文地址:https://www.cnblogs.com/telwanggs/p/6477443.html
Copyright © 2011-2022 走看看