jQuery,一个简单实用的javascript库,轻量级的,比较优秀。今天来说说它的设计思路。jQuery其实就是$,下面就用$来说了,每次我们都会这样来写,$(),其实这样就是一个函数调用,返回的是一个对象(其实不是jquery对象,严格来说是jquery原型下面的init函数构造器的对象。)在源码50几行有jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context, rootjQuery );
}
jQuery.fn和jQuery.prototype指向的是同一个对象在100行左右jQuery.fn = jQuery.prototype = {
// The current version of jQuery being used
jquery: core_version,
constructor: jQuery,
init: function( selector, co。。。。。。。。。。。。。大家自己去看
所以,可以认为jQuery.fn就是jQuery.prototype,(现在被一个对象将jQuery.prootype对象重写,这句话估计比较难懂,可以忽略)
jquery调用的接口。$()返回的就是一个jquery原型下面的init函数构造器的对象。但是大家应该会问,为什么$()可以调用jquery的原型的方法呢,因为300行左右有个jQuery.fn.init.prototype = jQuery.fn; 就等于说将jquery原型对象付给 jQuery.fn.init.prototype,又或者说 jQuery.fn.init.prototype的对象被jquery原型对象 覆盖了,所以$()虽然不是jquery对象,也能访问jquery的方法等,而且现在也算是jquery对象了,因为,转个大湾还不就是,创建了jquery对象啊。