jquery插件语法包装器

时间:2011-10-25 18:29:29

标签: jquery

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

(function ($, undefined) {

// Plugin goes here

})(jQuery);

2 个答案:

答案 0 :(得分:4)

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

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

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

我希望这很清楚。

答案 1 :(得分:3)

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

有很多文章比这更详细。

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