js深浅拷贝的区别

简介: js深浅拷贝的区别

JavaScript中深拷贝和浅拷贝的区别如下:

  • 浅拷贝。有两种方式,一种是把一个对象里面的所有的属性值和方法都复制给另一个对象,另一种是直接把一个对象赋给另一个对象,使得两个都指向同一个对象。对对象里面的对象属性和数组属性只是复制了地址,并没有创建新的相同对象或者数组。
  • 深拷贝。把一个对象的属性和方法一个个找出来,在另一个对象中开辟对应的空间,一个个存储到另一个对象中。是完完全全的复制一份,空间大小占用一样但是位置不同

JS中常用的深浅拷贝方法如下:

浅拷贝:

1. Object.assign(target, ...sources)

2. Array.prototype.concat()

3. Array.prototype.slice()

深拷贝:

1. JSON.parse(JSON.stringify(obj))

2. Lodash库的_.cloneDeep()方法

相关文章
|
1月前
|
JavaScript 前端开发 索引
js遍历的方法与区别
js遍历的方法与区别
43 3
|
1月前
|
JavaScript 前端开发 索引
js的循环中foreach、for in和for of的区别
js的循环中foreach、for in和for of的区别
100 0
|
14天前
|
前端开发 JavaScript API
JavaScript 的宏任务和微任务有什么区别
【9月更文挑战第6天】JavaScript 的宏任务和微任务有什么区别
15 4
|
6天前
|
前端开发 JavaScript UED
JavaScript防抖和节流的使用及区别
JavaScript防抖和节流的使用及区别
7 0
|
19天前
|
存储 JavaScript 前端开发
|
30天前
|
JavaScript 前端开发 Java
Java和JavaScript区别与联系
【8月更文挑战第18天】
|
1月前
|
JavaScript 前端开发
js中浅拷贝和深拷贝的区别
js中浅拷贝和深拷贝的区别
22 0
|
1月前
|
JavaScript 前端开发
JavaScript 函数中break,continue,return 的区别
JavaScript 函数中break,continue,return 的区别
27 0
|
1月前
|
JavaScript 前端开发
JavaScript中使用模板字符串拼接和使用字符串拼接有什么区别?
JavaScript中使用模板字符串拼接和使用字符串拼接有什么区别?
|
1月前
|
存储 缓存 JavaScript
JavaScript——请列出目前主流的 JavaScript 模块化实现的技术有哪些?说出它们的区别?
JavaScript——请列出目前主流的 JavaScript 模块化实现的技术有哪些?说出它们的区别?
27 0