课程
/前端开发
/jQuery
/jQuery源码解析(架构与依赖模块)
(function(window, factory) { factory(window) }(this, function() { return function() { //jQuery的调用 } }))
方法一的factory(window)这句window传值感觉一点作用也没有。 factory函数定义的时候并没有定义形参。
2016-10-09
源自:jQuery源码解析(架构与依赖模块) 1-5
正在回答
压缩后可以修改名字把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对象中。
欢迎提出质疑,一起学习
1步 提问者
夜晚的一场梦 回复 1步 提问者
举报
由浅入深地剖析jQuery库的设计与实现,揭开框架背后的秘密
1 回答global的取值,为何不直接this而是要typeof window !== "undefined" ? window : this
2 回答但deep=true的时候,不是window.$和window.JQuery都失去引用了,JQuery不是报废了?
3 回答我不明白window.$ === jQuery这里边的jQuery是什么呢
1 回答当window.$=window.jQuery=jQuery,外面的_$不应该跟着指向jQuery吗
2 回答能不能解释下 this 的值?