js习题(深拷贝的方法)

it2023-06-18  74

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> </body> </html> <script> var obj = { num: 12, age: 18, msg: { sum: 'kke' } } var son = {} function deepCopy(newobj, oldobj) { for (var k in oldobj) { //获取旧的对象属性值 var item = oldobj[k] if (item instanceof Array) { //判断这个属性值的类型是否属于数组类型 newobj[k] = []; return deepCopy(newobj[k], item) } else if (item instanceof Object) { //判断这个属性值的类型是否属于对象类型 newobj[k] = {}; return deepCopy(newobj[k], item) } else { //如果以上都不成立,则属于基本数据类型 newobj[k] = item } } } deepCopy(son, obj) console.log(son); son.msg.sum = 20 console.log(obj); </script>
最新回复(0)