使用 JavaScript 实现浅拷贝可以使用 Object.assign()
方法或者扩展运算符 ...
,例如:
const shallowCopy = Object.assign({}, originalObject); const shallowCopy = { ...originalObject };
实现深拷贝可以使用 JSON.parse(JSON.stringify(originalObject))
,但是这种方法会忽略对象中的函数和 undefined
。另一种方法是使用递归函数,例如:
function deepCopy(obj) { if (obj === null || typeof obj !== 'object') { return obj; } let copy; if (obj instanceof Array) { copy = []; for (let i = 0; i < obj.length; i++) { copy[i] = deepCopy(obj[i]); } } else { copy = {}; for (const key in obj) { copy[key] = deepCopy(obj[key]); } } return copy; } const deepCopy = deepCopy(originalObject);