闭包变量,会保存在内存中

执行以下程序,下列选项中,说法错误的是()

function fn(){ var num = 0; return function(){ console.log(++num); } } var fun = fn(); fun(); ...① fun(); ...②

A
程序存在闭包现象

B
匿名函数的this指向window对象

C
①式输出1

D
②式输出1

正确答案:D
官方解析:
A选项,闭包需要满足以下特征:
(1)有外层函数嵌套内层函数;
(2)内层函数使用外层函数的局部变量
(3)内层函数返回外部,并且被全局变量保存,因此A正确;

B选项,匿名函数的this指向window对象,B正确;

++num为前置自增,因此①式输出1,

又因为num为闭包变量,会保存在内存中,再次调用fun()会继续自增,因此②式输出2。

A.fn()包着一个匿名函数function,形成闭包 正确✅
B.只要是fn()这种形式执行的,this都是默认绑定指向window✅
(this的四种绑定 默认、隐式、显式、new绑定)
C.fun(); ...① 值为1,num先自增1后赋值 值为1 正确✅


__EOF__

本文作者龙陌
本文链接https://www.cnblogs.com/longmo666/p/17825438.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   龙陌  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示