[英]What does this function declaration mean? Function name and its argument are the same
我是javascript / jquery的新手,正在尝试了解wordpress插件的.js文件。 请给我一些解释,以更好地了解其基本原理。 我的问题是关于插件作者如何声明函数并连同其参数一起调用它们的:
a
(...函数(){...)而不是$
,因为我发现我可以利用两者的访问元素; a(...)
和$(...)
e
与它的第一个参数相同。 i=a(i)
是什么意思? e.result
到第5行,此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;
谢谢高级
提供给document.ready事件处理程序的参数是jQuery的一个实例。 您可以使用它在该函数范围内为jQuery本身添加别名。 在这种情况下,这就是通过a
变量来完成的-现在它是对jQuery
的引用。 当您有多个框架争夺$
变量的控制权时,这很有用。
从代码的外观来看,它已被缩小。 这就是为什么变量和函数名称已尽可能缩短以减小文件大小的原因。 这不是人类可读的代码。 如果您想完全理解其逻辑,建议您使用非缩小版本。
i = a(i)
是指分配i
于调用的结果a()
的初始值内功能i
作为参数
e
是无论e()
函数的第一个参数是什么的引用。 不了解函数的调用方式,我无法确切告诉您它是什么。
它们是提供给函数的e
参数的属性。 它可以是POJS对象,也可以是Event对象或完全其他的对象。 如果没有看到调用上下文,就无法确定。
1如果$
由另一个框架定义,则不使用$
。 在参数中传递a
。 请参阅: http : //learn.jquery.com/using-jquery-core/avoid-conflicts-other-libraries/
2 e
将用作函数内的变量。 只要不在自身内部调用外部函数e
,就不会发生冲突。 如评论中所述, e
被用作代码已“最小化”。
3 i=a(i)
与i = $(i)
(请记住a
= $
)-它包装参数i
以确保它是一个jquery对象。 Javascript不是强类型的,因此可以将DOM变量更改为jquery变量,或者将其保留为jquery变量(如果已经存在)。 它为调用代码提供了更大的灵活性。
4它始终使用最接近范围的变量,在这种情况下,它将是e(e,i)
的参数
5取决于e(e,i)
的调用方式-这不包含在您的代码段中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.