【问题标题】:The usage of (function () { //code })() [duplicate](function () { //code })() 的用法 [重复]
【发布时间】:2012-03-17 22:30:24
【问题描述】:

可能重复:
What do parentheses surrounding a JavaScript object/function/class declaration mean?

我只是不明白...的用法

(function () {
    //code
})()

……东西。

我称之为“东西”,我什至不知道它的名字......

这是 onReady 或 onLoad 事件的简写还是某种范围或闭包?

如果有人能解释这种语法的用法和目的,将不胜感激。

【问题讨论】:

    标签: javascript syntax


    【解决方案1】:

    它被称为自执行函数 - 它在声明后调用自己。

    常用于不污染全局命名空间。


    对于一篇简短但有趣的文章,请在此处阅读:

    How Self Executing Functions Work

    【讨论】:

      【解决方案2】:

      这是 onReady 或 onLoad 事件的简写还是某种 范围或关闭的东西?

      它是自调用匿名函数

      调用本身是因为 () 最后因为那是你通常调用函数的方式:

      someFunc();
      

      它是匿名的,因为它没有名字。


      整个函数体被包裹在() 中,以在其中创建变量的局部范围。除非显式公开,否则以这种方式声明的任何变量/函数都不能在外部使用(因此不会污染全局范围)。


      You can learn more about it here.

      【讨论】:

      • 而这样做的目的是避免乱扔全局范围。
      • @powerbuoy:是的,补充说。谢谢
      猜你喜欢
      • 2012-02-22
      • 1970-01-01
      • 2017-06-08
      • 1970-01-01
      • 2019-04-30
      • 2011-04-01
      • 1970-01-01
      • 2014-03-01
      • 1970-01-01
      相关资源
      最近更新 更多