为了账号安全,请及时绑定邮箱和手机立即绑定

js的闭包一定会return一个函数吗?如果是的话,这个闭包这么理解

js的闭包一定会return一个函数吗?如果是的话,这个闭包这么理解

九州编程 2019-10-25 21:57:49
funcitonassignHandler(){varelement=document.getElementById("id")element.onclick=function(){alert(element.id)}}
查看完整描述

2 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

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

TA贡献1816条经验 获得超4个赞

比较简单的理解,在var声明变量的这种语法环境中(es5..),一个{}包裹的就是一个闭包作用域,层层嵌套,内部的会向上追踪,所以for(vari;;){setInterval(foo{i})}这个定时器的i在()里面是不能直接固定的
                            
查看完整回答
反对 回复 2019-10-25
  • 2 回答
  • 0 关注
  • 1235 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信