我最近编写了一个js模块,并注意到我的模块中的函数列在Chrome调试器的“模块”选项卡中。
我在网上看到一篇文章,jQuery的document.ready()函数中的代码是一个闭包。但是,我在一个页面上的document.ready()中编写了一个函数,而Chrome调试器没有将该函数列为闭包。
是否有任何场景,其中document.ready()中的代码将是一个闭包(除了显式的嵌套闭包实现)或者我读到的文章的作者只是错误地认为这个?
答案 0 :(得分:0)
提交人完全错了。它们可能将闭包与作为参数传递的函数混淆。
当声明的函数完成执行时,Chrome会在闭包部分列出变量,但是另一个函数仍然可以访问该变量(因为第二个函数是在第一个函数内声明的)。