老师 有个问题请教一下

老师 有个问题请教一下

函数f1执行完后局部变量n不是应该销毁了吗,为什么在执行函数rs时输出的结果还会是999呢,不应该是undefined吗

http://img1.sycdn.imooc.com//climg/5f293e8f091b4a0f00000000.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,即使fn2里面没有使用n,f1执行完之后,局部变量n也不会被销毁。因为全局变量rs保存了对f2的引用,可以理解为f1函数的执行环境一直被引用,所以它内部的变量n不会被销毁。

祝学习愉快~

好帮手慕慕子 2020-08-04 19:17:17

同学你好, 正常情况函数执行完,函数内部局部变量就会被销毁,但是截图中的代码,函数f1执行完之后,将返回的结果f2函数赋值给rs,全局变量rs保存了对f2的引用,导致f1执行完之后,无法销毁局部变量n,所以调用rs时相当于调用f2函数,f2函数内部访问n,最终弹出结果是999

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 澳总 #1
    老师 如果f2里面没有使用外部的n,那么f1执行完之后,局部变量n会销毁吗
    2020-08-04 19:25:36
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师