//捋一下jquery的结构.
1.(function(){
/*--框架体--*/
window = this,
undefined, //据说var undefined直接量会快于undefined.未考证
_jQuery = window.jQuery, _$ = window.$ //如果window里有覆盖,临时存储进_jQuery 为后面的 noConflict (交出$控制权给其它js库) 作临时存储
/*jquery返回的对象只是根据selecter字符串取到的dom对象,经jQuery.fn.init包装之后的返回值(一个jQuery对象).
除些之外, jQuery对此方法还有其它扩展,比如参数如果是function 则$(fn)实际为$.ready(fn) 等等之类
*/
jQuery = window.jQuery = window.$ = function( selector, context ) {
return new jQuery.fn.init( selector, context );
},
//定义jQuery基本原型,并作一份拷贝给 jQuery.fn
$.fn = $.prototype = {
init: function(selector, context){...},
...
}
//现在开始对jQuery及jQuery.fn作基于类拷贝方式的扩展方法. 下面是方法.
jQuery.extend = jQuery.fn.extend = function(p) {...}
//扩展jQuery,使我们可以用 $.each $.isFunction 之类的函数。这些函数并不是基于prototype 而是属于jQuery的静态方法.
jQuery.extend({
each:function(){...},
isFunction: function(){...}
})
//让init函数也具有jQuery的原型, 这样init函数包装出来的对象。即是jquery对象
$.fn.init.prototype = $.fn;
//一个匿名函数, 实现css selector, 这个匿名函数里定义了 Sizzle对象,用来分析selector参数 最终Sizzle 对象被赋值给window.
(function(){...})()
window.Sizzle = Sizzle;
jQuery.find = Sizzle;
jQuery.filter = Sizzle.filter;
jQuery.expr = Sizzle.selectors;
jQuery.expr[":"] = jQuery.expr.filters;
...
//定义事件
jQuery.event = {}
jQuery.Event = function(){}
jQuery.Event.prototype = {}
$.extend({
/*事件*/
})
//REQUEST库
$.extend({
/*ajax*/
})
//效果库
$.extend({
/*fx*/
})
....
//插件机制
$.extend({
})
})()
同事弄的一份对jquery的结构的罗列
最新推荐文章于 2024-09-05 15:06:14 发布