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

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

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

米琪卡哇伊 2019-02-14 15:11:32
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程序员的必经之路,理解了其解释和运行机制才能写出更为安全和优雅的代码。呵呵 加油

查看完整回答
反对 回复 2019-03-09
  • 1 回答
  • 0 关注
  • 480 浏览

添加回答

举报

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