NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
### 1、常用深拷贝 ***** ``` function deepClone(obj) { var newObj = Array.isArray(obj) ? [] : {}; for(var key in obj){ if(obj[key] && typeof obj[key] === 'object'){ newObj[key] = deepClone(obj[key]) }else{ newObj[key] = obj[key] } } return newObj; } ``` ### 2、通过JSON对象进行深拷贝 ***** ``` function deepClone(obj={}) { return JSON.parse(JSON.stringify(obj)); } ``` 缺点明显,对象中的方法无法拷贝 ![](https://img.kancloud.cn/a6/99/a6999fe52418eddcd6890468547a3376_377x120.png) ### 3、一级对象/一维数组深拷贝 ***** | 方法 | 说明 | | --- | --- | | Object.assign() | 一级对象深拷贝,二级及其以上则为引用 | | slice | 一维数组深拷贝,二级及其以上则为引用 | | concat | 一维数组深拷贝,二级及其以上则为引用 |