我是javascript / jquery的新手,并试图了解wordpress插件的.js文件。请给我一些解释,以便更好地了解其基本原理。我的问题是插件作者如何声明函数并将它们与参数一起调用:
a
(... function(a){...)代替$
有什么好处,因为我已经注意到我可以通过使用它们来访问元素; a(...)
和$(...)
。e
与其第一个参数相同。i=a(i)
是什么意思?e.result
引用的e
是什么(到函数e
或第一个参数)。另外,===!0
是什么意思?e.result
,e.error
和e.message
。这些是什么 ?事件对象属性?因为我还没有找到他们的定义和用法。附加的代码示例来自.js文件的前几行:
jQuery(document).ready(function(a){
function e(e,i){
a(".lwa-loading").remove(),
i=a(i),
e.result===!0 ? statement1 : statement2;
先谢谢你
答案 0 :(得分:0)
提供给document.ready事件处理程序的参数是jQuery的一个实例。您可以使用它在该函数的范围内为jQuery本身设置别名。这就是在这种情况下用a
变量完成的 - 它现在是对jQuery
的引用。这在您有多个框架争夺$
变量控制权的情况下非常有用。
从代码的外观来看,它已经缩小了。这就是为什么尽可能缩短变量和函数名称以减少文件大小的原因。这不是人类可读的代码。如果你想完全理解逻辑,我建议找一个非缩小版本。
i = a(i)
表示将i
调用a()
函数作为参数的原始值i
的结果
e
是一个引用,无论e()
函数的第一个参数是什么。在没有看到函数被调用的情况下,我无法准确地告诉你它是什么。
它们是提供给函数的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)
的调用方式 - 这不包含在您的代码段中。