什么是堆栈?
堆:队列优先,先进先出;由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈
栈:先进后出;动态分配的空间 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表
基本类型:基本类型即有固定大小的类型,如Number,String,Undefined,Null,Boolean这种类型,
引用类型:引用类型为没有固定大小的类型,我们可以改变他的固定大小,如Object,他在栈中存了内存地址,然后指向堆内存中值
const
const定义的是一个常量,这个常量指的是内存地址不动(也就是栈里的不动),如果是引用类型的数据,它的堆里的数据还是可以改变的
浅拷贝与深拷贝
浅拷贝:复制所考虑的对象,而不复制它所引用的对象
如果改变person1属性friends里的值,person2也会跟着改变
深拷贝:深拷贝把要复制的对象所引用的对象都复制了一遍
person1和person2所有的值都不相关了
具体实现方法
逐个复制或者递归和object,creted()
网友评论