非自调用、匿名、javascript函数的意义何在
What is the point of non self-invoking, anonymous, javascript functions?
我了解自调用匿名函数,比如:
(function () {
//...
})();
大多数时候,它们用于创建闭包和抽象框架中的变量。然而,我也在不同的站点中看到过声明匿名函数但不调用它们的源代码。我很好奇这些是怎么用的。加载脚本时是否调用它们?请注意,在源选项卡中,它们看起来不像.js文件。相反,他们有一个这样的名字:
extensions::utils
或extensions::Event
等
它们看起来像是某种框架/库的一部分?我不确定。例如,extensions::Event
内部有以下代码:
(function($Object, $Function, privates, cls, superclass) {'use strict';
function Event() {
var privateObj = $Object.create(cls.prototype);
$Function.apply(cls, privateObj, arguments);
privateObj.wrapper = this;
privates(this).impl = privateObj;
};
if (superclass) {
Event.prototype = Object.create(superclass.prototype);
}
return Event;
}) //<-Self invocation missing.
正如您所看到的,这只是声明的,但没有使用。我唯一能想到的是,这个匿名函数实际上被分配给了一个名为Event
的变量,并且是extensions
对象或其他对象的一部分?
由于这些文件的唯一内容是非自调用函数,因此最可能的解释是,文件的整个内容通过在末尾添加()
来执行eval
。通过这种方式,我们可以访问匿名函数,而无需将它们分配给变量,即:var reference = function () {}
,并在需要时执行它们,而不是在创建过程中执行它们。
编辑:这些"文件"似乎是谷歌chrome使用的东西。我在不相关的网站上找到了它们。当我从firefox打开同一个网站时,我也找不到它们。
相关文章:
- 从javascript调用asp.net codebehind函数
- 如何使用javascript调用Php文件
- Can用户'MediaWiki上的自定义JavaScript调用Lua模块
- 从Javascript调用Applet方法
- php javascript代码从javascript调用php函数
- 是否可以从html中的javascript调用.vbs文件
- 从javascript调用C#Web服务并使用它(json格式)
- 如何用javascript调用函数,然后在滚动事件中调用该函数的特定实例
- Sinon Spy不使用Javascript调用或应用程序
- 使用javascript调用javawebservice
- 从javascript调用服务器端的下拉列表onchange函数
- 单击按钮时,使用Javascript调用并返回值
- 函数1结束后,JavaScript调用函数2
- 对wcf服务的javascript调用
- 使用JavaScript调用Excel文件
- 从JavaScript调用JAX-WSWeb服务时参数为Null
- 从javascript调用codeigniter方法并传递数据
- 使用usinf-if语句javascript调用函数
- 通过Javascript调用php文件
- 从javascript调用flash点击事件