JS中对象分为基本类型和引用类型,基本类型存放在栈内存,引用类型存放在堆内存。请问栈内存和堆内存的区别是什么,为什么这两种对象分别存储在不同的内存中?
6条回答 默认 最新
- threenewbee 2015-01-10 02:27关注
这很好理解,比如说这么个函数:
function sum(i)
{
if (i == 1) return 1;
return i + sum(i - 1);
}
显然,这是一个递归函数,函数自己调用自己。
那么每个调用,都必须保存一个i的变量。
此时就要用堆栈。堆栈的栈顶始终保持着函数的局部变量。当函数返回,则往回收缩,这多方便。而堆呢?适合全局的、一般的存储。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料