zpsakura

在 JS 中,函数和对象都是浅拷贝(地址引用);其他的,例如布尔值、数字等基础数据类型都是深拷贝(值引用)。

深拷贝

  1. JSON.parse(JSON.stringify(src)):这种方法有局限性,如果属性值是函数或者一个类的实例的时候,无法正确拷贝
  2. 借助第三方库:jq 的extend(true, result, src1, src2[ ,src3])、lodash 的cloneDeep(src)
  3. 借助 HTML5 的MessageChannel:这种方法有局限性,当属性值是函数的时候,会报错
  4. 手动做一个“完美”的深拷贝函数:https://godbmw.com/passages/2019-03-18-interview-js-code/

浅拷贝

  1. ES6 的 Object.assign()
  2. ES7 的...解构运算符

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-05-18
  • 2022-12-23
  • 2022-12-23
  • 2022-02-26
  • 2021-03-31
  • 2021-09-23
猜你喜欢
  • 2022-12-23
  • 2022-01-06
  • 2022-12-23
  • 2022-12-23
  • 2022-01-14
  • 2022-12-23
  • 2021-10-03
相关资源
相似解决方案