js 对象深拷贝
2021-03-30 07:25
标签:rip fine div prot data undefined class for lin js 对象深拷贝 标签:rip fine div prot data undefined class for lin 原文地址:https://www.cnblogs.com/wangyunhui/p/12598931.htmlconst getObjType = function (obj){
var toString = Object.prototype.toString;
var map = {
‘[object Boolean]‘: ‘boolean‘,
‘[object Number]‘: ‘number‘,
‘[object String]‘: ‘string‘,
‘[object Function]‘: ‘function‘,
‘[object Array]‘: ‘array‘,
‘[object Date]‘: ‘date‘,
‘[object RegExp]‘: ‘regExp‘,
‘[object Undefined]‘: ‘undefined‘,
‘[object Null]‘: ‘null‘,
‘[object Object]‘: ‘object‘
};
if (obj instanceof Element) {
return ‘element‘;
}
return map[toString.call(obj)];
};
const deepClone = function(data) {
var type = getObjType(data);
var obj;
if (type === ‘array‘) {
obj = [];
} else if (type === ‘object‘) {
obj = {};
} else {
//不再具有下一层次
return data;
}
if (type === ‘array‘) {
for (var i = 0, len = data.length; i
deepClone({}) //object
deepClone([]) //array