这个函数声明是什么意思?函数名称及其参数是相同的

时间:2018-05-16 09:24:23

标签: javascript jquery

我是javascript / jquery的新手,并试图了解wordpress插件的.js文件。请给我一些解释,以便更好地了解其基本原理。我的问题是插件作者如何声明函数并将它们与参数一起调用:

  1. 根据给定的代码示例,从第一行开始,使用a(... function(a){...)代替$有什么好处,因为我已经注意到我可以通过使用它们来访问元素; a(...)$(...)
  2. 第二行让我感到困惑。为什么函数名e与其第一个参数相同。
  3. 第四行让我更加困惑。 i=a(i)是什么意思?
  4. 第5行,从e.result引用的e是什么(到函数e或第一个参数)。另外,===!0是什么意思?
  5. 我的上一个问题:我看到作者试图访问e.resulte.errore.message。这些是什么 ?事件对象属性?因为我还没有找到他们的定义和用法。
  6. 附加的代码示例来自.js文件的前几行:

    jQuery(document).ready(function(a){
       function e(e,i){
         a(".lwa-loading").remove(),
         i=a(i),
         e.result===!0 ? statement1 : statement2;
    

    先谢谢你

2 个答案:

答案 0 :(得分:0)

  1. 提供给document.ready事件处理程序的参数是jQuery的一个实例。您可以使用它在该函数的范围内为jQuery本身设置别名。这就是在这种情况下用a变量完成的 - 它现在是对jQuery的引用。这在您有多个框架争夺$变量控制权的情况下非常有用。

  2. 从代码的外观来看,它已经缩小了。这就是为什么尽可能缩短变量和函数名称以减少文件大小的原因。这不是人类可读的代码。如果你想完全理解逻辑,我建议找一个非缩小版本。

  3. i = a(i)表示将i调用a()函数作为参数的原始值i的结果

  4. e是一个引用,无论e()函数的第一个参数是什么。在没有看到函数被调用的情况下,我无法准确地告诉你它是什么。

  5. 它们是提供给函数的e参数的属性。它可以是POJS对象,也可以是Event对象或其他东西。如果没有看到调用上下文,就无法确定。

答案 1 :(得分:0)

1它没有使用$ incase $由另一个框架定义。 a在参数中传递。 请参阅:http://learn.jquery.com/using-jquery-core/avoid-conflicts-other-libraries/

2 e将用作函数中的变量。只要外部函数e本身不被调用,就没有冲突。正如评论中所述,e被用作代码已被缩小"。

3 i=a(i)i = $(i)相同(请记住a = $) - 它会包装参数i以确保它为“{1}} jquery对象。 Javascript不是强类型的,因此这可以将DOM变量更改为jquery变量,或者将其保存为jquery变量(如果已经存在的话)。它为调用代码提供了更大的灵活性。

4它总是使用最接近的范围变量,在这种情况下它将是e(e,i)

中的参数

5取决于e(e,i)的调用方式 - 这不包含在您的代码段中。