zoukankan      html  css  js  c++  java
  • 浅拷贝与深拷贝的实现方式,部分深拷贝与完全深拷贝。

    浅拷贝的方式:

    1.直接赋值

    let a={a:1}
    let b=a

    2.Lodash.js库的方式

    let a={a:1}
    let b=_.clone(a)

    深拷贝的方式:

    部分深拷贝(不完全拷贝)

    1.JSON.stringify对象转字符串,JSON.parse字符串转对象。

    缺陷:不能拷贝对象的function、Date对象、正则、error对象、undefined

    let a={a:1,b:{a:1}}
    let b=JSON.stringify(JSON.parse(a))

    2.Object.assign 将2个对象合并为新对象。

    缺陷:只能拷贝第一层。

    let a={a:1}
    let b=Object.assign({},a)

    3.es6的{...} 创建新对象

    缺陷:只能拷贝第一层。

    let a={a:1}
    let b={...a}

    完全深拷贝

    1.Lodash.js的_.cloneDeep实现深拷贝

    let a={a:1,b:{a:1}}
    let b=_.cloneDeep(a)
  • 相关阅读:
    Vue--路由
    Vue -- 双向过滤器去除html标签
    SQL表的基本操作
    .NET面试题
    MVC Razor
    MVC aspx
    CSS修改滚动条样式
    C# 制作图片验证码
    上传图片加水印
    eclipse常用快捷键
  • 原文地址:https://www.cnblogs.com/wuhairui/p/13721666.html
Copyright © 2011-2022 走看看