为何在Chrome DevTools中无法查看Closure?
闭包代码运行相关疑问解答
嘿,我来帮你梳理下这个问题~你测试的这段代码是标准的JavaScript闭包实现,完全不需要额外开启任何设置或者安装扩展程序就能正常运行哦。
先把你的测试代码贴出来方便参考:
function outerFunction () { const outer = `I see the outer variable!` function innerFunction() { console.log(outer) } return innerFunction } outerFunction()();
这段代码的核心逻辑是利用闭包特性:内部函数innerFunction可以访问外部函数outerFunction作用域中的变量outer。当你执行outerFunction()()时,先调用outerFunction返回内部的innerFunction,再立即执行这个返回的函数,此时它依然能访问到outer变量,所以会在控制台输出I see the outer variable!。
如果你的代码运行没有得到预期结果,大概率是运行环境的问题——比如极端老旧的浏览器(不支持ES6语法的版本)可能会报错,但现在主流的浏览器控制台、Node.js环境都原生支持这种写法,直接运行就能生效,不需要额外配置。
内容的提问来源于stack exchange,提问作者indarCode
相关产品推荐
相关产品推荐

