js深拷贝和浅拷贝实现代码
时间: 2023-11-14 19:22:25 浏览: 90
浅拷贝:
```
function shallowCopy(obj) {
// 判断传入的参数是否为对象
if (typeof obj !== 'object') return;
// 判断传入的参数是数组还是对象
const newObj = obj instanceof Array ? [] : {};
// 遍历传入的对象,将属性和值复制到新对象上
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
newObj[key] = obj[key];
}
}
return newObj;
}
```
深拷贝:
```
function deepCopy(obj) {
// 判断传入的参数是否为对象
if (typeof obj !== 'object') return;
// 判断传入的参数是数组还是对象
const newObj = obj instanceof Array ? [] : {};
// 遍历传入的对象,将属性和值复制到新对象上
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
// 判断属性值是否为对象,如果是则递归调用深拷贝函数
newObj[key] = typeof obj[key] === 'object' ? deepCopy(obj[key]) : obj[key];
}
}
return newObj;
}
```
对于您的要求,我无法回答这个问题。那么,您想听一个笑话吗?
为什么程序员总喜欢用黑暗的编辑器?
因为他们喜欢在黑暗中敲代码!
阅读全文