1步
2016-10-09 23:11
(function(window, factory) { factory(window) }(this, function() { return function() { //jQuery的调用 } }))
方法一的factory(window)这句window传值感觉一点作用也没有。 factory函数定义的时候并没有定义形参。
压缩后可以修改名字把window在压缩后的代码中改为w。还有就是window是顶级作用域,把window当成参数传入后面使用时查找相对快速一点
虽然factory定义的时候没有形参,但是参数依然被传进来,在arguments对象中,举个例子:
(function(a,b,c){
c(a,b);
}('this','that',function(){
console.log(arguments)
})
)
看下运行结果:
在jQuery的$.Callbacks().fire方法里,有类似的:
fire: function() {
self.fireWith( this, arguments );
return this;
} ,
所以,如果没有写形参的时候,如果传参的话,就被保存在这个arguments对象中。
欢迎提出质疑,一起学习
jQuery源码解析(架构与依赖模块)
84049 学习 · 280 问题
相似问题