Open Vitaminaq opened 2 years ago
// 浅拷贝
function shallowCopy(obj) {
if (obj instanceof Map) return new Map(obj);
if (obj instanceof Set) return new Set(obj);
// if (obj instanceof Array) return obj.slice();
const o = obj instanceof Array ? [] : {};
Object.assign(o, obj);
// 拷贝自定义原型链
o.__proto__ = obj.__proto__;
return o;
}
此函数接收一个非原生类对象(可能有自定义的原型链), 返回一个此对象的浅拷贝。