uni-multiple-select
Version:
uni-app 多选select组件、select搜索选择页组件;支持H5、微信、百度、支付宝、头条等小程序
19 lines (18 loc) • 671 B
JavaScript
export default function deepClone(obj, hash= new Map()) {
if(obj == null) return obj; // 不操作
if(obj instanceof Date) return new Date(obj);
if(obj instanceof RegExp) return new RegExp(obj);
// 普通值/函数不需要深拷贝
if(typeof obj !== "object") return obj;
// 是对象的话要进行深拷贝
if(hash.get(obj)) return hash.get(obj);
let cloneObj = new obj.constructor();
// 找到的是所属类原型上的constructor,而原型上的constructor指向的是当前类本身
hash.set(obj.cloneObj);
for(let key in obj) {
if(obj.hasOwnProperty(key)) {
cloneObj[key] = deepClone(obj[key], hash)
}
}
return cloneObj;
}