这到底是做什么的?我知道它被jquery插件包裹起来,但却没有真正理解它的作用。
(function ($, undefined) {
// Plugin goes here
})(jQuery);
答案 0 :(得分:4)
()()
是一种在javascript中运行一段代码的方法。第一对parentesis是代码部分,第二对是执行顺序,你可以传递变量,如调用函数。
在第一次注射中你定义你的函数,它接受两个参数,你用一个参数jQuery
执行它,这是一个核心的jQuery对象。为此,您将jQuery对象作为变量传递给函数,并将其命名为$
。因为您的函数是在该范围内定义的,所以您的代码不会与包含您的代码的全局范围或范围上的另一个$
变量冲突。
正如您所看到的,还有另一个变量:undefined
但没有参数。如果不传递第二个参数,则第二个变量将是未定义的,因为它的名称未定义,您可以在代码中自由使用它。有关undefined的更多信息,您可以查看here
我希望这很清楚。
答案 1 :(得分:3)
这创建了一个范围,您可以在其中定义变量和方法,而不必担心它们会暴露给全局范围。
有很多文章比这更详细。
编辑:这是一个http://benalman.com/news/2010/11/immediately-invoked-function-expression/