这篇文章给大家介绍怎么在JavaScript中实现对象深拷贝,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
JS是JavaScript的简称,它是一种直译式的脚本语言,其解释器被称为JavaScript引擎,是浏览器的一部分,主要用于web的开发,可以给网站添加各种各样的动态效果,让网页更加美观。
1. 序列化转成json字符串深拷贝
let newData = JSON.parse(JSON.stringify(data)); if (newData === data) { console.log(true); } else { console.log(false); } // false
注意:此方法仅在原对象包含可序列化值类型且没有任何循环引用时才有效。
2. Object.assign()深拷贝
var obj3 = {}; 将obj合并到obj3上 Object.assign(obj3, obj); console.log(obj3);// {name: "小甜甜", age: 24, say: ƒ} // 修改obj3的值原对象也不会发生改变 obj3.age = 66; console.log(obj); // {name: "小甜甜", age: 24, say: ƒ} console.log(obj3); // {name: "小甜甜", age: 66, say: ƒ}
注意:要拷贝的对象source里面的属性不是基础类型也是对象,或者属性含有对象数组,那这种方式的拷贝就不会把source对象里面的对象或者数组对象进行深拷贝。
3. 循环递归深拷贝(万能方法)
var arr = [1,2,3,4,5] var arr2 = copyArr(arr) function copyArr(arr) { let res = [] for (let i = 0; i < arr.length; i++) { res.push(arr[i]) } return res }
关于怎么在JavaScript中实现对象深拷贝就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。