在 JavaScript 开发中,闭包(Closure)是一个非常强大的概念,它允许我们捕获并记住其周围的作用域,即使函数是在该作用域之外被执行的。今天我们将探讨如何使用闭包来解决一个常见的 UI 交互问题,并结合实例进行说明。
问题背景
假设我们有一个主页面,上面有6个按钮,每个按钮点击后会导向一个新的页面,其中包含一些信息和一个“发现”按钮。在实际应用中,每个按钮应该链接到不同的内容,但因为闭包的问题,所有的按钮都指向同一个链接。这是因为在事件处理中,index变量在所有事件处理函数中共享,导致每个按钮的index值始终是最后一个按钮的索引。
问题代码
以下是最初的代码:
constsolutions=[{}];document.