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

立即执行函数问题

立即执行函数问题

zhanbao 2017-01-10 16:13:49
(0, function () {return ';)'})()上面这段代码执行之后,为什么会输出“;)”呢?第一个“0”是什么意思?
查看完整描述

1 回答

?
大写的王

TA贡献122条经验 获得超162个赞

它会运算每个被逗号分开的表达式并返回最后一个表达式的结果。这种写法会先计算“0”,再计算匿名函数,并返回函数引用。


查看完整回答
1 反对 回复 2017-01-10
  • zhanbao
    zhanbao
    非常感谢你的回答。还有一个疑问,这种写法的使用场景是什么呢?既然“返回的是最后一个表达式的结果”那么计算之前表达式的值还有意义吗?
  • 大写的王
    大写的王
    (function(a,b){return a+b;})(1,2)其实就是个匿名函数,和这种没有什么区别,只不过这种只运行一次,那种格式可以一次执行n个函数前面的函数可能是要操作别的东西比如把某个值改变下,但是不需要返回给我们什么通知,就不用返回接收了。而我们只需要最后一个函数的返回值就可以用这种形式
  • 1 回答
  • 0 关注
  • 1265 浏览
慕课专栏
更多

添加回答

举报

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