作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很想了解闭包在这组代码中究竟是如何发生的,以及它的实现方式。我在看一个教程,那个人给出了回调函数的例子,他还给出了闭包的例子。
function attachEventListeners() {
let count = 0
document.getElementById("clickMe").addEventListener("click", function () {
console.log("Button Clicked", ++count)
})
attachEventListeners()
我认为,为了让基于闭包的计数函数起作用,您必须返回该函数并将其分配给一个变量。否则每次调用外部函数时,count 都会初始化为 0。但是它在这里是如何工作的?
最佳答案
闭包本质上是当另一个函数内部的函数超出其自身范围以获取外部函数范围内的变量时的情况。
function attachEventListeners() {
let count = 0
document.getElementById("clickMe").addEventListener("click", function () {
console.log("Button Clicked", ++count)
})
在此示例中,传递给事件监听器的匿名函数正在获取并递增 attachEventListeners
函数范围内的变量 count
。
关于javascript - 单击此处的每个按钮时计数究竟是如何增加的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69050778/
Feel free to skip straight to TL/DR if you're not interested in details of the question 简短的序言: 我最近决定
我一直在阅读 A Tour of Go学习Go-Lang到目前为止一切顺利。 我目前在 Struct Fields类(class),这是右侧的示例代码: package main import "fm
Last time I got confused顺便说一下PowerShell急切地展开集合,基思总结了它的启发式如下: Putting the results (an array) within a
我是一名优秀的程序员,十分优秀!