void function(){function a(){...}a();}();如何理解上面的函数?属于闭包吗?这样写法有什么好处?
1 回答
呼如林
TA贡献1798条经验 获得超3个赞
JavaScript中所有的function都是一个闭包 ,不过一般来说,嵌套的function所产生的闭包更为强大,也是大部分时候我们所谓的“闭包” 而你的function(){}();不过是定义了个函数并且马上执行而已,外部是无法调用你的内部函数 a()的 如果你想引用你的a() 也就是闭包 我建议这样
function f(){
var i=0;
function a(){
alert(++i);
}
return a;
}
这样你可以在外界这么引用内部函数a()
var c=f();
c();
你可以看到很好玩的东西哦 有些东西自己理解反而更好
理解JavaScript的闭包是迈向高级JS程序员的必经之路,理解了其解释和运行机制才能写出更为安全和优雅的代码。呵呵 加油
- 1 回答
- 0 关注
- 480 浏览
添加回答
举报
0/150
提交
取消