search

Home  >  Q&A  >  body text

javascript - (function(){}()) 与(function(){})()有什么区别?

我发现他们都可以执行,但不知道有什么区别?

怪我咯怪我咯2908 days ago477

reply all(3)I'll reply

  • 天蓬老师

    天蓬老师2017-04-10 15:04:26

    在此
    http://www.zhihu.com/question/20292224

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 15:04:26

    没区别。这两个都是先声明匿名函数,然后立即执行。
    其实原型是这样的function(){}()。但是这样是无法执行的。因为根据ECMA262标准function开头的语句Function Definition,此时的函数不能为匿名必须有名字。所以要声明匿名函数并立即执行,只需要保证语句不适宜function开头即可。

    用法如:
    (function(){}())
    (function(){})()
    !function(){}()
    +function(){}()
    -function(){}()

    reply
    0
  • PHPz

    PHPz2017-04-10 15:04:26

    没区别哒。可以立即执行函数,并模拟块级作用域。

    reply
    0
  • Cancelreply