前端深拷贝

2022-07-25 08:15:39

// 深度克隆
封装方法,判断是什么类型,做不同的处理

deepClone(o) {
if (
typeof o === “string” ||
typeof o === “number” ||
typeof o === “boolean” ||
typeof o === “undefined”
) {
return o;
} else if (Array.isArray(o)) {
// 如果是数组,则定义一个新数组,完成复制后返回
// 注意,这里判断数组不能用typeof,因为typeof Array 返回的是object
var _arr = [] as any;
o.forEach((item) => {
_arr.push(item);
});
return _arr;
} else if (typeof o === “object”) {
var _o = {};
for (let key in o) {
_o[key] = this.deepClone(o[key]);
}
return _o;
} }

  • 作者:阿笙@叶
  • 原文链接:https://blog.csdn.net/hzh2031015/article/details/125661335
    更新时间:2022-07-25 08:15:39