JS中语句的含义

时间:2013-09-06 14:44:49

标签: javascript

试图找出这在javascript中意味着什么。

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

这不是使用jQuery,所以这只是一种javascript方式让这个等待直到文档准备好执行? 感谢。

4 个答案:

答案 0 :(得分:4)

这不会等待文档准备就绪,这将立即执行函数的内容。将函数定义放在括号中使它成为一个表达式,它返回一个值作为函数,使其直接可执行。此模式称为Immediately-Invoked Function Expression (IIFE)

这可能与Closure Compiler等缩小器一起使用。

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

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

答案 1 :(得分:2)

这会创建一个带有单个参数的匿名函数,并立即调用它作为参数传递document

答案 2 :(得分:2)

此:

function(document) { ... } 

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

此:

(function(document) { ... })

使(代码,而不是函数)成为有效的表达式。请参阅here

此:

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

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

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

答案 3 :(得分:1)

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