js手写一个深拷贝函数
时间: 2023-11-09 20:46:54 浏览: 106
javascript深拷贝
当然可以!以下是一个用 JavaScript 手写的深拷贝函数:
```javascript
function deepClone(obj) {
// 检查是否为数组或对象
if (typeof obj !== 'object' || obj === null) {
return obj;
}
let clone = Array.isArray(obj) ? [] : {};
// 遍历对象的所有属性/元素并进行深拷贝
for (let key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) {
clone[key] = deepClone(obj[key]);
}
}
return clone;
}
```
你可以使用这个函数来深拷贝一个对象或者数组,例如:
```javascript
let originalObj = {
name: "John",
age: 30,
hobbies: ["reading", "coding"],
address: {
street: "123 Main St",
city: "New York"
}
};
let clonedObj = deepClone(originalObj);
console.log(clonedObj);
```
这样,`clonedObj` 将是 `originalObj` 的一个完全独立的副本,对其进行修改不会影响原始对象。
阅读全文