Skip to content

JS 拷贝

浅拷贝

复制对象或数组的方法,但只复制对象的第一层,而不会递归复制嵌套在其中的对象或数组。

对象拷贝

  • Object.create(x)
  • Object.assign({},x)

数组浅拷贝

  • concat()
  • slice()
  • 数组解构
  • map()
js
const movements = [200, 450, -400, 3000, -650, -130, 70, 1300];

const newMove = movements.concat();
const newMove1 = movements.slice();
const newMove2 = [...movements];
const newMove3 = movements.map((item)=>item);

深拷贝

新建的对象或数组完全独立于原对象

JSON.parse(JSON.stringify(obj))

局限:

  1. 无法拷贝undefiend、function、symble、bigint
  2. 无法处理循环引用