jQuery源码分析笔记--1

来源:互联网 发布:平面动画制作软件 编辑:程序博客网 时间:2024/04/27 23:50

先基本代码

(function(window,undefined){

    
    var jQuery    = ........
    
     //.......
    
    })();
   
    window.jQuery = window.$ = jQuery;
    

})(window);


1、为什么要创建自调用函数?

      通过创建自调用匿名函数,创建一个特殊的函数作用域,该作用域中的代码不会和已有的同名函数、方法和变量以及第三方库冲突


2、自调用函数的几种写法

     写法1

      (function(){

        //.......

     })();


     写法2

    (function(){

       //........

    }());


   写法3

  !function(){

       //........

  }();


3、为什么要为自调用匿名函数设置参数window,并传入window对象?

      通过传入window对象,可以使window对象变为局部变量(即把函数参数作为局部变量使用),这样当在jQuery代码块中访问widow对象时,不需要将作用域链回退到顶层作用域,从而可以更快的访问window对象,这是原因之一;另外,将window对象作为参数传入,可以在压缩代码时进行优化。


4、为什么要为自调用匿名函数设置参数undefined?

     特殊值undefined是window对象的一个属性,例如,执行下面的代码将会弹出true:

    alert("undefined" in window);    //true

    通过把参数undefined作为局部变量使用,但是又不传入任何值,可以缩短查找undefined时的作用域链。

   另外,更重要的原因是,通过这种方式可以确保参数undefined的值是undefined,因为undefined有可能会被重写为新的值。


5、自调用匿名函数最后的分号(;)

    1、在下面的代码中,如果自调用匿名函数的前一行末尾没有加分号,则自调用匿名函数的第一对括号会被当作是函数调用

         var n = 1

         (function(){})()

     2、在下面的代码中,如果未在第一个自调用匿名函数的末尾加分号,则下一行自调用匿名函数的第一对括号会被当作是函数调用

         ( function(){} )()

         ( function(){} )()

         ( function(){} )()


0 0
原创粉丝点击