你有没有看过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 举报,一经查实,本站将立刻删除。