JavaScript中,数据类型有原始类型和对象类型两种类型,其中如果想要对对象进行简单地复制很简单,但是当要复制的对象中存在某一个属性的值类型是对象或者数组时,就不能进行简单的复制,要对对象进行深拷贝操作。本文介绍js深拷贝对象的方法:1、利用json对象深拷贝对象;2、利用递归的方式深拷贝对象;3、利用ES6对象扩展运算符(…)深拷贝对象。
方法一:利用json对象深拷贝对象
var obj = { name: 'FungLeo', sex: 'man', old: '18' } var obj2 = JSON.parse(JSON.stringify(obj))
方法二:利用递归的方式深拷贝对象
function deepCopy(s) { const target = {} for (let k in s) { if (typeof s[k] == 'object') { d[k] = deepCopy(s[k]) } else { d[k] = s[k] } } return target } console.log(deepCopy(a));
方法三:利用ES6对象扩展运算符(…)深拷贝对象
const obj = { name: 'ha', age: 10 } const obj2 = { obj: { ...obj } }
以上就是js深拷贝对象的方法,大家可以根据自己的需求选择合适的方法哦~更多js学习推荐:js教程。