这个JavaScript / jQuery语法如何工作:( function(window,undefined){})(window)?

你有没有看过jQuery 1.4源代码的内幕,并注意到它是如何以下列方式封装的:

(function( window, undefined ) {

  //All the JQuery code here 
  ...

})(window);

我读过一篇关于JavaScript Namespacing文章和另一篇名为“An Important Pair of Parens”的文章,所以我知道这里发生了什么.

但我以前从未见过这种特殊的语法.什么是未定义在那里做?为什么窗口需要通过然后再次出现?

解决方法:

undefined是一个普通变量,只需使用undefined =“new value”;即可更改.所以jQuery创建了一个真正未定义的本地“未定义”变量.

出于性能原因,窗口变量是本地的.因为当JavaScript查找变量时,它首先遍历局部变量,直到找到变量名称.如果找不到它,JavaScript将通过下一个范围等,直到它过滤全局变量.因此,如果窗口变量是本地的,JavaScript可以更快地查找它.
更多信息:Speed Up Your JavaScript – Nicholas C. Zakas

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...