实现一个深拷贝 发表于 2023-02-20 12345678910111213141516171819202122232425262728293031/** * 获取数据类型的函数 */function type (data) { return Object.prototype.toString.call(data).slice(8, -1).toLowerCase()}function clone(source) { const t = type(source) if (t !== 'object' && t !== 'array') { return source } let target; // 如果参数是一个Object类型 if (t === 'object') { target = {} // 对象的遍历方法 for (let i in source) { if (source.hasOwnProperty(i)) { target[i] = clone(source[i]) } } } else { target = [] // 数组的遍历方法 for (let i = 0; i < source.length; i++) { target[i] = clone(source[i]) } } return target}