JavaScript中的闭包(Closures)是如何工作的?用简单例子解释
大家好!我刚开始学习JavaScript,怎么也搞不懂闭包(closures)这个主题。我读过不同的文章,但还是感到困惑。\n\n例如,有这样的代码:\n\n>>\n
function counter() {\n let count = 0;\n return function() {\n count++;\n return count;\n };\n}\n\nconst myCounter = counter();\nconsole.log(myCounter()); // 1\nconsole.log(myCounter()); // 2\nconsole.log(myCounter()); // 3\n\n为什么变量count每次不会重置?毕竟函数counter()已经执行完毕,但我们仍然可以修改它的内部变量。我本以为第一次调用myCounter()后,变量count会被销毁,因为它是在函数内部声明的。\n\n还有一个问题:闭包到底有什么用?在哪些实际场景中会用到它们?希望能用简单的例子解释,最好用中文。提前感谢!\n<<什么是闭包以及它是如何工作的?
\n\n闭包(closure)是