这两个参数为什么在jQuery源码中为
Why are these two parameters in the jQuery source for?
jQuery源代码被封装在闭包中,如下所示:
(function(window, undefined) {
//awesome jQuery library code in here
})(window);
我不明白为什么需要这两个参数。
既然window
是一个全局变量,为什么它需要传入?传入一个全局参数并在闭包中以相同的名称访问它的目的是什么?
undefined
参数的作用是什么?为什么没有任何值传递给它?
我很确定这个问题已经得到了回答,但是:
-
在
window
中传递a)允许代码压缩来改变名称(即在匿名函数中替换为单个字母的变量名称)和b)确保变量在定义库时引用窗口对象,以防在jQuery加载后任何人在全局范围内重新定义window
。 -
包括
undefined
作为参数(但不传递值)对undefined
做同样的事情,允许变量修改并避免问题,如果undefined
变量被重新定义(是的,Javascript允许这一点)。
我相信在这两种情况下,这应该加快对变量的引用,因为它使两个全局变量在函数作用域中可用,解释器将在全局作用域中查找之前搜索。但老实说,我无法想象这里的性能差异有多大——我认为最大的问题是变量名的变化,这使得在最小化时代码更紧凑。
相关文章:
- 为什么jQuery掩码说它'It’这不是函数
- jQuery 掩码插件中的时间验证 24 小时格式
- 如何在焦点上隐藏jquery掩码中的括号和连字符
- jQuery 简码生成中的条件语句
- 限制在 jquery 掩码中遵循 mm/dd/yyyy
- 不能使用 jQuery 键码来更改元素的 CSS
- jquery掩码插件不起作用
- 使用带有on()事件的jquery掩码插件
- 将选择框更改为自动完成jquery源php echo
- Jquery日期picker和Jquery掩码不起作用
- Jquery源码错误
- 在jQuery源码中理解空格正则表达式
- 这两个参数为什么在jQuery源码中为
- jQuery掩码插件翻译设置默认值
- 解决来自jQuery源的泄漏
- Jquery自动完成源码php函数
- 在jquery源码中找到了这个,它是如何工作的
- 是否可以在jQuery掩码中添加后缀?
- 如何在jQuery掩码插件中将特殊字符转换为文字字符
- 基本了解javascript框架源码