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

立即执行函数表达式的案例疑问??

立即执行函数表达式的案例疑问??

皈依舞 2018-10-10 13:15:19
//第一段代码(function(){   //dosomething})()上边这段代码,我可以理解写成: var something=function(){   //dosomething}something();这里的something是function(){//dosomething}的指针,可以用后者(实际对象)替换该指针something,则something()可以写成(function(){//dosomething})(),但是,如果我把第一段代码中()()第一个括号中匿名函数写成有名函数foo:(function foo(){    //dosomething})()这里的代码第一个()括号里是一个函数声明,而不是像前面是一个函数表达式,似乎不能按照上述的演算过程,这里该如何理解呢???就是说,如果把匿名函数变成了有名函数,该如何理解其中的调用??还烦请大神解惑!!
查看完整描述

1 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

(function foo(global){
    //dosomething
})(window);

其实这里你写不写名字都没什么关系;因为你是立即执行。
同常为了省事,写 立即执行 时候,是不需要给函数带名字的,意思就是说函数在这执行就好了,根本就不打算在后面再调用,没必要取个名字。当然写了,也没什么关系。

但是通常情况下单纯 写个函数 就应该给他个名字,不论是声明的形式,还是表达式的形式,不然会报错。原因你可以理解为,如果 你就 写了个 function(){...}; 这个么东东,是没有意义的,是个垃圾。因为你后面根本就没法调用! 你要么就立即调用,要么就赋给个变量,以便后面视情况调用。


查看完整回答
反对 回复 2018-11-18
  • 1 回答
  • 0 关注
  • 395 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号