方法一中factory(window)语句的window传值理解不了

来源:1-5 立即调用表达式

1步

2016-10-09 23:11

(function(window, factory) {
    factory(window)
}(this, function() {
    return function() {
       //jQuery的调用
    }
}))

方法一的factory(window)这句window传值感觉一点作用也没有。 factory函数定义的时候并没有定义形参。

写回答 关注

2回答

  • 阳阳很爱小希
    2017-03-15 07:56:34

    压缩后可以修改名字把window在压缩后的代码中改为w。还有就是window是顶级作用域,把window当成参数传入后面使用时查找相对快速一点

  • 夜晚的一场梦
    2016-10-10 13:08:52

    虽然factory定义的时候没有形参,但是参数依然被传进来,在arguments对象中,举个例子:

    (function(a,b,c){
            c(a,b);            
        }('this','that',function(){       
                console.log(arguments)        
        })
    )

    看下运行结果:

    http://img.mukewang.com/57fb216f0001d2ca08380267.jpg

    在jQuery的$.Callbacks().fire方法里,有类似的:

    fire: function() {
                    self.fireWith( this, arguments );
                    return this;
                } ,

    所以,如果没有写形参的时候,如果传参的话,就被保存在这个arguments对象中。

    欢迎提出质疑,一起学习


    夜晚的一场梦 回复1步

    适用得的场合不一样,个人觉得比较适合参数可有可无的函数,比如jquery里那个fire()

    2016-10-11 10:48:57

    共 2 条回复 >

jQuery源码解析(架构与依赖模块)

由浅入深地剖析jQuery库的设计与实现,揭开框架背后的秘密

84049 学习 · 280 问题

查看课程

相似问题