zayzy 2022-07-26 22:10 采纳率: 94.1%
浏览 26

关于闭包用途的一个疑问

关于闭包的问题:

闭包的用途之一是能让变量的值始终保存在内存中。为什么能始终保存在内存中呢?我看了一下原因是这样解释的:f1是f2的父函数,f2被赋给了一个全局变量,f2始终存在内存中,f2的存在依赖f1,因此f1也始终存在内存中,不会在调用结束后,被垃圾回收机制回收。

问题来了:f2被赋给了一个全局变量是什么意思?它是存在堆内存中了吗?

  • 写回答

1条回答 默认 最新

  • bekote 2022-07-27 10:06
    关注

    通常,如果f1是f2内的变量,那么它就是一个局部变量,局部变量存储在栈中,在f1被调用时创建,f1调用结束时销毁,但是如果是闭包,f2被赋给了一个全局变量,全局变量属于window对象的属性,window对象存储在堆内存中,所以全局变量保存在堆内存中,并且生命周期取决于窗口的创建和销毁

    评论

报告相同问题?

问题事件

  • 创建了问题 7月26日

悬赏问题

  • ¥15 怎么做商品窗体,完完全全不会
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 铜与钢双金属板叠加在一起每种材料300mm长,18mm宽,4mm厚一端固定并加热至80℃,当加热端温度保持不变时另一端的稳态温度。ansys
  • ¥15 django5安装失败
  • ¥15 Java与Hbase相关问题
  • ¥15 后缀 crn 游戏文件提取资源
  • ¥15 ANSYS分析简单钎焊问题
  • ¥20 bash代码推送不上去 git fetch origin master #失败了