JavaScript 中的闭包

JavaScript 中的闭包

闭包只是一个内部发生的概念。

在 JavaScript 中,一个 ** 关闭** 是一个从其内部范围引用外部范围内变量的函数。闭包将外部范围保留在其内部范围内。

考虑以下脚本:

如果我们按照常规的 JS 执行过程方法,我们得出的结论是输出将是 错误信息未定义。 但是,实际输出将是“Hi”。上述脚本中的这个问题导致解决方案关闭。

在执行上述代码期间,当 ** 返回说嗨** ;执行时,JS 引擎足够聪明,sayHi() 函数会使用其范围之外的变量,因此,它将这些变量放在单独的闭包框中。

考虑以下代码:

上面的代码输出不是我们想要的,我们希望每 i*1000 秒更新一次 i 并打印该值。我们可以使用两种方法来解决这个问题 ** IIFE** 形成封闭或使用 ** ** 代替 ** 曾是。** 解决方法如下:

Using the let instead of var we can get desired output

Use IIFE with closure

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/24630/54251009

posted @ 2022-09-10 09:56  哈哈哈来了啊啊啊  阅读(20)  评论(0编辑  收藏  举报