发布于 2026-01-06 1 阅读
0

JavaScript 中闭包的示例

JavaScript 中闭包的示例

大家好,

闭包的概念是我刚开始深入学习 JavaScript 时遇到的比较难懂的概念之一。如果你是第一次接触这个概念,闭包本质上就是一个函数,它与周围的状态(通常包含闭包所需的变量)捆绑在一起。闭包通常是一个嵌套在另一个更大函数中的函数,这个更大的函数就像一个“冒泡”。这个更大的函数冒泡内的所有变量只能通过闭包中的方法访问。

JavaScript 引擎足够智能,能够意识到这些变量是必需的,因此引擎的垃圾回收器不会删除它们。

下面是一个包含四个函数的对象的示例,这些函数实际上是闭包。

get,,,。它们都作用于一个名为的变量,该变量位于立即调用函数表达式(IIFE)中,该表达式包含闭包setincrementresetcount

每个函数都与其周围环境捆绑在一起,是一个闭包。

  • get方法只会获取该count值。

  • set方法可以将count值设置为我们想要的任何值。

  • increment方法会将现有值增加作为参数传入的数值。如果没有传入数值,则该值加 1。

  • reset方法将值重置为零。

这些方法是用户访问该count值的唯一途径。这样一来,闭包的使用使得该count值的行为类似于 Java 对象中的私有变量;它无法在对象外部访问,因此需要使用方法来检索或更新其值。

在演示中,你会看到一个init方法获取了我们打印到的 HTML 元素的引用,然后调用了所有相关的方法。仔细观察这些方法的调用方式,看看你是否能理解是什么原因导致这些特定的值被打印出来。

希望这篇简短的文章能让您对房屋关闭有一个大致的了解。感谢阅读!

别处

想要轻松入门闭包教程,请查看Medium 上的《JavaScript 闭包及其作用域冒泡》 。

文章来源:https://dev.to/nevkatz/an-example-of-a-closure-in-javascript-36ak