Javascript内存分配:堆和堆栈



堆只包含指针吗?栈是实际数据所在的地方吗?

堆段上的指针指向堆中的其他指针,或者指向存储在内存的堆栈段中的值。

是真的吗?

从这个文档:

堆栈:

堆栈是JavaScript用来存储静态数据的数据结构。静态数据是引擎在编译时就知道其大小的数据。在JavaScript中,这包括原始值(字符串、数字、布尔值、未定义值和null)和指向对象和函数的引用。

堆:

堆是JavaScript用来存储对象和函数的不同空间。

回到你的问题:Does the heap only contain pointers?

不,JS没有指针。你可以把对象看作JS中的指针。

与C语言不同,您无法看到指针的实际地址和指针的实际值,您只能对其解引用(获取其指向的地址处的值)

从这里,这里有一个很好的例子和解释:

//this will make object1 point to the memory location that object2 is pointing at
object1 = object2;
//this will make object2 point to the memory location that object1 is pointing at 
function myfunc(object2){}
myfunc(object1);

如果有帮助请告诉我。

最新更新