functionshallowClone(source) { let result = {} for (let item in source) { if (source.hasOwnProperty(item)) { result[item] = source[item] } } return result }
functiondeepClone(obj) { let result = new obj.constructor() if (obj === null) return obj if (obj instanceofDate) returnnewDate(obj) if (obj instanceofRegExp) returnnewRegExp(obj) // 普通类型不需要深拷贝 if (typeof obj !== 'object') return obj for (let item in obj) { if (obj.hasOwnProperty(item)) { result[item] = deepClone(obj[item]) } } return result }