1. 程式人生 > >$.extend和$.fn.extend的區別

$.extend和$.fn.extend的區別

(function () {

   var jQuery = function (selector, context) {
        return new jQuery.fn.init(selector, context);
     };

    jQuery.fn = jQuery.prototype = {
        constructor: jQuery,
        init:function....
   };  
   window.jQuery = window.$ = jQuery;
 })();

JQ中提供的方法有兩部分

  1. 在原型上面定義方法,供JQ的例項使用(JQ例項一般都是用選擇器獲取到的元素集合)

  2. 把JQ當做普通的物件,定義的私有屬性和方法(這些方法一般都是專案中的一些工具包或者常用的方法如$.ajax())

JQ已經提供很多的方法了,但是也不能說就足夠全了,所以為了後期開發者可以增加一些自己的方法,JQ提供了EXTEND方法,幫助開發者在JQ的原型或者物件上增加屬於自己的方法

  1. jQuery.extend({AA:function...})在JQ的物件上增加方法$.AA(),這樣做一般都是增加更多的公用方法

  2. jQuery.fn.extend({BB:function...}):在JQ的原型上擴充套件方法$().BB(),這樣做一般是給元素用的,我們也基於這個擴充套件JQ外掛