flo-utils
Version:
38 lines (30 loc) • 587 B
JavaScript
/**
* 支持基本类型 + function
* 不支持环引用,symbol等
* @name 深拷贝
* @param {*} o
* @returns
*/
function deepCopy(o) {
if (o instanceof Array) {
var n = [];
for (var i = 0; i < o.length; i += 1) {
n[i] = deepCopy(o[i]);
}
return n;
}
if (typeof o === 'function') {
return o;
}
if (o instanceof Object) {
var _n = {};
for (var key in o) {
if (Object.prototype.hasOwnProperty.call(o, key)) {
_n[key] = deepCopy(o[key]);
}
}
return _n;
}
return o;
}
export default deepCopy;