Hi FE !
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
  • S001-实现浅拷贝★

S001-实现浅拷贝★

01.实现浅拷贝

如果一个变量复制一个对象,那么两者的值会是同一个引用,其中一个改变,另一方也会相应改变。针对引用类型我们需要实现数据的拷贝。

1.用...实现

const copy = {...{x:1}}

2.用Oject.assign 实现

const copy = Object.assign({},{x:1})

扩展运算符跟Object.assign({},obj)是一样的,对于对象中的值修改,是深拷贝,而里面的对象则是浅拷贝

但是呢

Object.assign(obj) 这么写就是单纯的引用了,无论里面是值还是对象

3.用slice(或concat([]))实现

```
let arr = [1,3,{
	x:1
}]
let copy = arr.slice();
```

数组中的值的变化是,深拷贝,对象变化就是浅拷贝同1,2

4.新建对象,循环添加

	let obj2 = {}
	for(let key in obj){
			obj2[key] = obj[key]
	}
	obj2.name = 'CCC'

	```



Edit this page
最近更新: 2025/6/27 02:24
Contributors: qdleader
qdleader
本站总访问量 129823次 | 本站访客数 12人