使用JavaScript写一个复制所有数据类型的深拷贝
以下是使用JavaScript实现复制所有数据类型的深拷贝的示例代码:
function deepCopy(obj) {
// 确定obj的类型
let type = Object.prototype.toString.call(obj).slice(8, -1);
// 根据类型分别处理
switch (type) {
case "Object":
let newObj = {};
for (let key in obj) {
newObj[key] = deepCopy(obj[key]);
}
return newObj;
case "Array":
return obj.map((item) => deepCopy(item));
case "Date":
return new Date(obj);
case "RegExp":
return new RegExp(obj.source, obj.flags);
default:
return obj;
}
}
使用示例:
let obj = {
a: 1,
b: "2",
c: [3, 4],
d: { e: "5", f: [6, 7] },
g: new Date(),
h: /abc/gi,
};
let newObj = deepCopy(obj);
console.log(newObj); // {a: 1, b: "2", c: Array(2), d: {…}, g: Date, …}
原文地址: https://www.cveoy.top/t/topic/bU5x 著作权归作者所有。请勿转载和采集!