【问题标题】:A simple JavaScript function which is between parenthesis [duplicate]括号之间的简单JavaScript函数[重复]
【发布时间】:2013-03-11 15:59:28
【问题描述】:

我下载了一个外部 JavaScript 文件并想为其创建一个 HTML5 用户界面。我不明白为什么 JavaScript 代码(见下文)会这样启动他的主要功能。

//JavaScript Code
(function(Raphael) {
      // some codes here
})(window.Raphael);

为什么是括号之间的函数?

“window.Raphael”是什么意思?

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    这是self invoking anonymous function 的示例。

    您正在将window.Raphael 传递给该函数,该函数本质上是在函数内部“重命名”为 Raphael。

    【讨论】:

    • 理论上称它为 self-invoking 是不正确的,因为它不是调用自身的函数。相反,它是定义它的线程(可能是另一个函数或全局范围)。
    • 这很可能是因为缩小工具可以将所有Raphael 的使用缩短为该函数中更短的变量名,而不会破坏代码。
    【解决方案2】:

    这是一个立即执行的函数(IIFE)。意思是之后立即定义和执行。

    在这种情况下,它也使用RaphaelJS 这是一个 SVG 库。 IIFE 接受一个大概由 Raphael 定义的全局变量,该变量可通过window.Raphael 访问

    【讨论】:

    • 投反对票,因为 IEF 是 YAUA(又一个不必要的缩写词)。
    • 同意。我只是不想一遍又一遍地输入“立即执行函数”.. :-)
    • 为了论证,最常见的首字母缩写词是 IIFE - 立即调用的函数表达式。
    • @Adam - 对,这就是我想要的。
    • 我从来没有见过这个首字母缩写词,似乎是你只能在 JavaScript 中看到的东西。可以做到这一点的其他语言从不定义首字母缩略词,因为这是正常的操作过程。
    猜你喜欢
    • 2019-08-15
    • 2011-11-27
    • 1970-01-01
    • 2018-09-28
    • 2015-10-16
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    相关资源
    最近更新 更多