浅拷贝和深拷贝的区别
浅拷贝只是复制了对象的引用地址,两个对象指向同一个内存地址,所以修改其中任意的值,另一个值都会随之变化,这就是浅拷贝
深拷贝是将对象及值复制过来,两个对象修改其中任意的值另一个值不会改变,这就是深拷贝
要理解 JavaScript中浅拷贝和深拷贝的区别,首先要明白JavaScript的数据类型。JavaScript有两种数据类型,基础数据类型和引用数据类型。
1. 基础数据类型: undefined、boolean、number、string、null,保存在栈内存中的简单数据
2. 引用数据类型:Array、对象、Function,保存在堆内存空间中
深拷贝是彻底的拷贝,两对象中所有的成员都是独立的一份,而且,成员对象中的成员对象也是独立一份。
浅拷贝中的某些成员变量可能是共享的,深拷贝如果不够彻底,就是浅拷贝。
实现深拷贝主要有2种方法
(1)递归
(2)JSON.stringify结合JSON.pars
1、路在何方?
路在脚下
2、何去何从?
每个人都在探索,未来的方向在何处。如果说某些方向是世人已经公认的,那么就先按照公认的去走吧(ps:站在巨人的肩膀上看世界会清晰)。
如果说方向,当今世人还不清晰准确。那么就大胆往前走吧,对与错并不重要。心中的方向更加重要。