这个javascript代码片段究竟意味着什么?

问题描述:

HTML5 Mobile Boilerplate's helper.js:这个javascript代码片段究竟意味着什么?

(function(document){ 
    //all stuff here 
})(document); 

这是什么片段何时做它运行?

+0

顺便说一句,这是很难找到一个不同的标题时,我想要问的是“这是什么代码是什么意思?”。我不得不将“代码”更改为“代码段”,然后添加“实际”,所以我可以发布这个。 – keune

它创建一个临时的匿名函数,并用一个名为document的参数来调用它。据推测它有一些局部变量,它隐藏在封闭范围内。

这是一个javascript函数,当浏览器在解析页面时遇到它时立即执行。该函数接受一个参数,即window.document属性(如函数底部所传递的那样)

这是一个闭包,它定义了一个方法,它接受一个参数document并立即用文档作为。参数

它,因为它的评估完成后尽快运行 - 所以基本上马上

如果你说:

(function(var1){/*stuff*/})(var2) 

立即调用函数,并传递var2的功能。请注意,该函数是匿名的,不能直接调用。你可以在Javascript这里读一般的和匿名函数有关匿名函数:

http://en.wikipedia.org/wiki/Anonymous_function#JavaScript