在学习JavaScript的一些总结和经验,供大家参考和学习,同时也欢迎大家参与讨论。
2. 深度克隆(拷贝)
前言:在上一篇文章开头的介绍中我们是不是说过对一个对象进行修改不会影响到另一个对象,但是很明显,在浅度克隆中对obj1中的sex改动的时候(因为sex是数组,是引用类型,为堆内存中的对象),obj2中的sex也随着改动了,这样就达不到我们想要的效果,所以深度克隆就是来解决这个问题的。
Object.hasOwnProperty(prop)
Object.prototype.toString()
Function.prototype.apply()
Function.prototype.call()
至于如何应用,那就要读者自己去了解了,可以到各大博客社区或者MDN,javaScript高程设计看看
例子:
1 | <script type="text/javascript"> |
简化代码:
利用JSON对象中的stringify()和parse()方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <script type="text/javascript">
var book = {
title: "professional javaScript",
authors: [
"yicong",
"wangyicong"
],
edition: 3,
year: 2019,
name: undefined, // 不会输出,只输出有效的JSON数据类型的实例属性
};
var copyBook = JSON.parse(JSON.stringify(book));
console.log(copyBook);
book.title = "我是一个基础数据类型";
book.authors.push("我是一个引用数据类型");
console.log(book);
</script>
文章标题: JS中的对象克隆之深度克隆(拷贝)
文章作者: 王奕聪,QQ:1301842163
许可协议:
©署名-非商用-相同方式共享 4.0
