jquery插件语法包装器

这到底是做什么的? 我知道它被jquery插件包裹起来,但却没有真正理解它的作用。

(function ($, undefined) { // Plugin goes here })(jQuery); 

()()是一种在javascript中运行一段代码的方法。 第一对parentesis是代码部分,第二对是执行顺序,你可以传递变量,如调用函数。

在第一次治疗中你定义你的函数,它接受两个参数,你用一个参数jQuery执行它,它是核心jQuery对象。 为此,您将jQuery对象作为变量传递给函数,并将其命名为$ 。 因为您的函数是在该范围内定义的,所以您的代码不会与包含您的代码的全局范围或范围上的另一个$变量冲突。

如您所见,还有另一个变量: undefined但没有参数。 如果不传递第二个参数,则第二个变量将是未定义的,因为它的名称未定义,您可以在代码中自由使用它。 有关undefined的更多信息,请查看此处

我希望这很清楚。

这创建了一个范围,您可以在其中定义变量和方法,而不必担心它们会暴露给全局范围。

有很多文章比这更详细。

编辑:这是一个http://benalman.com/news/2010/11/immediately-invoked-function-expression/