js对象深拷贝
Posted 坐观南星北斗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js对象深拷贝相关的知识,希望对你有一定的参考价值。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> </body> <script> function deepCopy(obj){ //确定入参啥数组还是对象 var objArray = Array.isArray(obj) ? []:{}; //obj存在,且类型为对象 if(obj && typeof obj === ‘object‘){ //遍历对象属性 for(key in obj){ //判断对象属性是否属于自身 if(obj.hasOwnProperty(key)){ //判断obj子属性是否为对象,如果是,递归操作,否 将对象保存 if(obj[key] && typeof obj[key] === ‘object‘){ objArray[key] = deepCopy(obj[key]) }else{ objArray[key] = obj[key] } } } } return objArray; } var obj1 = { nan:1, bei:null, dong:undefined, xi:{ xinan:2, xibei:function(){ let b = 2 } }, fn:function(){ let a = 1; }, a:[1,2] } var obj2 = deepCopy(obj1) console.log(obj1) obj2.xi.xinan = 5; console.log(obj2) </script> </html>
以上是关于js对象深拷贝的主要内容,如果未能解决你的问题,请参考以下文章