• jquery源码学习-初始(1)


      最近几天一直在研究jquery源码,由于水平太低看得昏头转向。本来理解的也不是很深刻,下面就用自己的想法来说下jquery是如何定义构造函数初始化的。如果有什么不对的地方,希望个位高手指出。

      首先要了解下什么时候自执行匿名函数 ,它的用途就是 相当于创建一个命名空间,只要把自己所有的代码写在这个特殊的函数包装内,外部不能访问,除非你允许。

    基本格式
    (function(){
        //代码
    })();
    (function(){
      var a = 10;
       function $(){
         alert(a);
       }
    })();
    
    $(); // 靠居然报错,因为$方法为局部变量,外部是无法访问。

    尼玛那要怎么访问啊?

    其实我们可以把这个$函数挂载到一个全局变量上

    (function(){
            
        var a = 10;
            
        function $(){
            alert(a);
        }
        
        //对外接口,把$挂载到window下    
        window.$ = $; 
            
    })();
    
    $(); //果断打印出10 

     jQuery其实还加上了2个参数

       

    (function(window, undefined){
        
        console.log(window);
        
    })(window);
    
    第一个参数为window对象。
    1.其实主要是为了优化作用域查找速度。
    如果不传window参数,自执行匿名函数内使用window对象,此作用域并没有找到window对象,所以会向上一层作用域查找(即全局)。
    2.然后可以传参数可以改名字,详见压缩版jQuery库。
    
    第二个参数为undefined。
    1.传这个参数主要是有些低版本浏览器undefined可以修改
    var undefined = 10;
    alert(undefined);
    ie7,8下弹出10,其他浏览器弹出10,所以传个undefined参数,防止找到作用域外可能被改过的undefined
    2.与window参数同理
  • 相关阅读:
    JUnit4_2
    软件工程
    Java核心API需要掌握的程度
    VS2008工具箱不显示的解决方法
    SQLServer 2005中的Row_Number()分页
    关于UITableView的一点儿新认识
    二叉树的建立和遍历
    In App Purchases(IAP 应用程序內购买): 完全攻略 (转)
    [转]内存分配函数 _alloc/malloc/calloc
    ObjectiveC学习笔记
  • 原文地址:https://www.cnblogs.com/loveyouyou616/p/3916369.html
Copyright © 2020-2023  润新知