这是什么语法?; (函数($,undefined)

Eri*_*ric 8 javascript jquery

; (function ($, undefined)
{

    // all the variables and functions of the js document

})(jQuery);
Run Code Online (Sandbox Code Playgroud)

我现在已经在jquery/javascript文件中看到过两次这样的缩放脚本.我不明白这究竟是什么.我似乎无法谷歌它,我不记得在最近学习jquery和js时在tizag或w3schools上遇到过这个问题.

此代码之前或之后没有任何内容(除了一些注释).所以我完全迷失了什么(function())(jQuery);是或做了什么.

Den*_*ret 8

(function ($, undefined)
{

    // all the variables and functions of the js document

})(jQuery);
Run Code Online (Sandbox Code Playgroud)

调用一段代码确保内部

  • $可用于参考 jQuery
  • undefinedundefined

并且任何minifier都可以更改undefined为更短的标签.

初始;确保您可以将此文件与另一个文件连接起来:如果没有这个,如果前一个文件之类的话,那么执行连接文件时会出错

(function (){

})()
Run Code Online (Sandbox Code Playgroud)


Ode*_*ded 5

这是一种确保$确实是jQuery对象并确保任何局部变量和方法都是私有范围的方法,即不污染全局命名空间.

它是一个自调用的匿名函数,传递的参数是jQuery,这意味着$它将是jQuery对象.

在函数内声明意味着内部变量和方法在其外部不可见.

  • 另外 - 开头的分号只是一个安全措施,以防这个代码被包含在其他JS后没有正确的格式. (5认同)