jQuery 总体源码结构笔记

来源:互联网 发布:宿州煤电集团知乎 编辑:程序博客网 时间:2024/05/14 04:21

jQuery 总体源码结构笔记

// 最外层是一个自调用函数( function( window,undefined ){   // 声明一个jQuery构造函数   var jQuery = ( function(){        // 将jQuery构造函数覆盖改成实例        var jQuery = function(){            // 说明我们使用的jQuery对象并不是直接使用jQuery构造函数构造的,只是两者的原型一样而已            return new jQuery.fn.init();           }        // 将jQuery.prototype简写为jQuery.fn        jQuery.fn = jQuery.prototype = {            constructor = jQuery,            // 初始化jQuery对象            init: function(){...}        }        // 构造jQuery实例的时候重新制定了init函数的原型        jQuery.fn.init.prototype = jQuery.fn;        jQuery.extend = jQuery.fn.extend = function(){...};        jQuery.extend({...});        return jQuery;   } )();   // 添加全局变量$和jQuery,两者都是一个实例,并不是构造函数    window.jQuery = window.$ = jQuery;  } )(window);

总结: 1.在函数jQuery()函数内部使用new创建一个实例;
2.jQuery实例不是直接有jQuery函数构造,而是通过一个init函数间接实现,为了不实例化jQuery函数中那些在内部使用的方法和属性;
3.对一些太长的标识符进行简缩比如jQuery.fn,$;
4.将jQuery实例付给全局变量jQuery
5.传入window对象,变成局部变量,来缩短查找window对象时候搜索的作用域链长度。
6.设置形参undefined可以起到缩短搜索的作用域链,而不传入参数是因为,外部的undefined可能存在被个人修改,不传入时它的默认值就是undefined,这一最保险

0 0
原创粉丝点击