猿问

求大佬指点哈!js的闭包一定会return一个函数吗?如果是的话,这个闭包这么理解

funcitonassignHandler(){
varelement=document.getElementById("id")
element.onclick=function(){
alert(element.id)
}
}
繁花如伊
浏览 382回答 2
2回答

炎炎设计

答:不需要返回函数解:闭包可以理解为:“定义在一个函数内部的函数”。内部的函数可以访问外部函数的变量,形成一个词法环境的组合。即:functioninit(){varname="jason";//局部变量functionshowName(){//内部函数,一个闭包alert(name);//使用了父函数中声明的变量}showName();}init();无论showName是否返回这个闭包已经形成了,这表示的是一种状态。

互换的青春

比较简单的理解,在var声明变量的这种语法环境中(es5..),一个{}包裹的就是一个闭包作用域,层层嵌套,内部的会向上追踪,所以for(vari;;){setInterval(foo{i})}这个定时器的i在()里面是不能直接固定的
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答