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

javascript中一个关于括号的问题

javascript中一个关于括号的问题

幕布斯7119047 2018-08-11 11:10:49
平时使用匿名函数时这种用法比较多见:(function(){return "ok"})()因为直接使用这样的代码 function(){return "ok"}() "()"先计算是会报错的,但是也会看到这样的写法也是可行的:(function(){return "ok"}())这样又如何解释呢?
查看完整描述

1 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

我的理解是这个括号建立了一个新的作用域。(function(){return "ok"}())中的匿名函数已经不再是定义全局作用域定义的函数了。你可以用(fOk = function(){return "ok"}());fOk();来验证。但是函数的定义加载是优先于其调用的。但是在匿名函数中()运算符优先级更高,所以直接function(){//..}()会报错。但是用()将这段代码的作用于降级之后就可以了,应该因为这时函数调用运算符()执行前匿名函数就已经定义过了

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

添加回答

举报

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