全局函数是否存在闭包?

Posted lwl0812

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全局函数是否存在闭包?相关的知识,希望对你有一定的参考价值。

正在学习这一章节,看到这么一段话:

技术分享图片

就想说自己也写个闭包试试看:

let len = 0;
function foo() {
    len++;
    setTimeout(() => {
       len--;
    }, 1000);
}
foo();

  

然后在浏览器里打了断点,发现并没有出现所谓的闭包。

技术分享图片

 

所以寻思着是不是作者错了,全局作用域中是没有闭包的?于是就去GitHub上的issue中找类似的问题,没想到还真有人提了。

技术分享图片

 

技术分享图片

 

链接:https://github.com/getify/You-Dont-Know-JS/issues/1321

正如作者所说,全局作用域闭包不是可明显观察到的,但是他认为所有的函数在其所在的封闭词法作用域中都是有闭包的,当然,包括全局函数。

以上,权当是mark一下吧。

虽然作者释疑了,但还是想知道是否有方法可以验证作者的说法,希望大家可以留言,提供帮助,谢谢!

以上是关于全局函数是否存在闭包?的主要内容,如果未能解决你的问题,请参考以下文章

闭包+函数+作用域

闭包的简单理解

没有变量的嵌套函数中是不是存在闭包

R Shiny中是否存在全局变量?

python闭包

js 闭包 具体作用?