/** * 深拷贝 * @param {Object} obj 需要深拷贝的对象 */ function deepClone(obj = {}) { if (typeof obj !== 'object') return obj; let result = obj instanceof Array ? [] : {}; for (key in obj) { // 保证key不是原型的属性 if (obj.hasOwnProperty(key)) { // 递归 result[key] = deepClone(obj[key]); } } return result; } const aa = { name: "zhangsan", list: [1,2,3,4] } const bb = deepClone(aa); bb.list[0] = 2 console.log(bb, aa) console.log(!!NaN)