jQuery里面$.fn和$.extend

时间:2021-10-15 03:45:40

jQuery源码里面fn的描述是这样的

jQuery.fn = jQuery.prototype = { 
   init: function( selector, context ) {//.... 
   //......
};
通过这个可以看出来,这个里的fn和我们平时用的prototype是一样的,

js里面没有类的概念,但是这里用类来理解会方便一点,jquery便是一个封装好的类,$("#id")返回一个jquery类生成的实例,(相当于new了一个对象)

jQuery.fn.test = function(){
.....
}

调用的时候  $("#id").test();

jQuery.extend(object);相当于添加了一个静态方法,是吧object添加到jquery的全局对象里面,

比如说

$.extend({
_test:function(){alert('_test');}
});
调用时候直接是 $._test();不需要生成一个实例
类似于
var _test = {}
_test = $.extend(_test,{_do:function(){console.log('ok')}})
_test._do()
这里_do只是添加到_test这个对象里,并不是到原型链