void function(){ function a(){ ... } a(); }();?

void function(){
function a(){
...
}
a();
}();

如何理解上面的函数?属于闭包吗?这样写法有什么好处?

米琪卡哇伊
浏览 481回答 1
1回答

呼如林

JavaScript中所有的function都是一个闭包 ,不过一般来说,嵌套的function所产生的闭包更为强大,也是大部分时候我们所谓的“闭包” 而你的function(){}();不过是定义了个函数并且马上执行而已,外部是无法调用你的内部函数 a()的 如果你想引用你的a() 也就是闭包 我建议这样function f(){var i=0;function a(){alert(++i);}return a;}这样你可以在外界这么引用内部函数a()var c=f();c();你可以看到很好玩的东西哦 有些东西自己理解反而更好理解JavaScript的闭包是迈向高级JS程序员的必经之路,理解了其解释和运行机制才能写出更为安全和优雅的代码。呵呵 加油
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery