You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

对象内部原始值(primitive value)的实际存储位置问询

JavaScript对象中原始值属性的存储位置

拿你给出的代码举例:

const foo =  {
  firstName: 'bar'
}

主流JS引擎(比如V8)的处理逻辑是这样的:

  • 对象foo作为引用类型,整体存储在堆内存中,因为引用类型需要动态分配内存空间。
  • 原始值'bar'(字符串属于原始值)并不会存在栈内存里,而是存在堆内存的字符串池(V8的字符串驻留机制)中,对象foo的firstName属性会直接持有这个字符串在堆中的引用。

补充一点:JS里的栈内存主要用来存放执行上下文、局部变量的引用等,原始值不管是作为对象属性还是局部变量,本质上都是存在堆里的——栈里只会存局部原始值的副本,但对象属性对应的原始值,肯定是存在堆里,属性本身存的是它的堆内存引用。

内容的提问来源于stack exchange,提问作者Yousef Dawood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 09:57:00