成员变量在堆,局部变量在栈。堆是线程都可以访问的,而不同线程的栈是无法互相访问的。
成员变量可以理解为属性,对象的属性一般都叫成员变量,js所谓的全局变量也叫成员变量,window的成员变量。
function与其他块内部的变量为局部变量
与其他语言不通,JS的引用数据类型,比如数组Array,它们值的大小是不固定的。引用数据类型的值是保存在堆内存中的对象。JavaScript不允许直接访问堆内存中的位置,因此我们不能直接操作对象的堆内存空间。在操作对象时,实际上是在操作对象的引用而不是实际的对象。因此,引用类型的值都是按引用访问的。这里的引用,我们可以粗浅地理解为保存在栈内存中的一个地址,该地址与堆内存的实际值相关联。
https://www.jianshu.com/p/996671d4dcc4
https://juejin.im/entry/589c29a9b123db16a3c18adf
网友评论