微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

这个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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐