试图找出这在javascript中意味着什么。
(function(document) { ... } )(document);
这不是使用jQuery,所以这只是一种javascript方式让这个等待直到文档准备好执行? 感谢。
答案 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
的参数来评估匿名函数。