zoukankan      html  css  js  c++  java
  • 关于深拷贝

      我们都知道在js中,变量分为值类型和引用类型,对于值类型来说,它在赋值是一种传值赋值,即直接原原本本拷贝一份;而对于引用类型(对象、数组、函数)来说,由于体积较大,它们在赋值时是一种传址赋值,也就是说,仅仅把一个指向引用类型的指针复制过去,这是一种浅拷贝;而要真正地拷贝引用类型本身,就要用到深拷贝。

      我在阮一峰的博客里,看到了关于他对于深拷贝的定义:

      

      我们在实际的开发中,对象和数组通常会用于存储一些数据,如数字、字符串、布尔值、undefined、null等等。而至于方法的书写,通常会统一写在比如类似methods这样的方法属性中。如果不同的模块需要进行方法共用,你可以再写多一遍,也可以把这个方法定义为全局方法,但不会把这个方法作为一个数据去传输它。

      

      在控制台打印一下就会发现,JSON本来也就没有打算把方法作为一个数据去传输。

      说了这么多,就是想说当遇到深拷贝的时候,常用的一种方法是JSON.parse(JSON.stringify())。这种方法如果对象属性值为function,它会自动跳过。而这并不能称为是它的一个弊端,因为它也顺应了这个行业的默认规则。所以目前来说用它来实现深拷贝仍然是完美的。

  • 相关阅读:
    Linux用root强制踢掉已登录用户;用fail2ban阻止ssh暴力破解root密码
    JDBC开发
    JSP指令与动作元素
    Jsp——状态管理
    JavaBeans
    JSP——九大内置对象
    Jsp基础语法
    WEB-INF目录结构
    JavaWeb简介
    UML——初识
  • 原文地址:https://www.cnblogs.com/zhangnan35/p/8638522.html
Copyright © 2011-2022 走看看