1

试图弄清楚这在javascript中意味着什么。

(function(document) { ... } )(document);

它没有使用 jQuery,所以这只是一种等待文档准备好执行的 JavaScript 方式吗?谢谢。

4

4 回答 4

4

这不会等待文档准备好,而是立即执行函数的内容。将函数定义放在括号中使其成为一个表达式,该表达式返回一个作为函数的值,使其直接可执行。这种模式称为立即调用函数表达式 (IIFE)

这可能与像Closure Compiler这样的压缩器一起使用。

在函数内部,document是一个局部变量。这使得缩小器可以将其名称缩减为一个或两个字符的名称。

还要注意,函数内定义的所有变量都是本地的:它们不会在全局范围内泄漏,如果这只是脚本的一部分,这可能会很有趣。

于 2013-09-06T14:45:55.407 回答
2

这将创建一个接受单个参数的匿名函数,并立即将其document作为参数传递。

于 2013-09-06T14:45:59.667 回答
2

这:

function(document) { ... } 

创建一个采用一个参数的函数。

这:

(function(document) { ... })

使其(代码,而不是函数)成为有效的表达式。见这里

这:

(function(document) { ... } )(document);

以文档为参数调用该函数。

这是一种基本的模块化模式。在不同的环境中,您可以传递一些其他对象而不是文档,但该函数内部不需要知道它。

于 2013-09-06T14:48:47.383 回答
1

这称为自执行函数document它使用传入的参数调用参数来评估匿名函数。

于 2013-09-06T14:49:31.073 回答