funciton assignHandler(){
var element = document.getElementById("id")
element.onclick = function(){
alert(element.id)
}
}
funciton assignHandler(){
var element = document.getElementById("id")
element.onclick = function(){
alert(element.id)
}
}
比较简单的理解,在var声明变量的这种语法环境中(es5..),一个{}包裹的就是一个闭包作用域,层层嵌套,内部的会向上追踪,所以
for(var i;;){ setInterval(foo{ i }) }这个定时器的i在()里面是不能直接固定的
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
答: 不需要返回函数
解:
闭包可以理解为:“定义在一个函数内部的函数”。内部的函数可以访问外部函数的变量,形成一个词法环境的组合。
即:
无论
showName
是否返回这个闭包已经形成了,这表示的是一种状态。