Jquery中的Jquery.extend, Jquery.fn.extend,Jquery.prototype

Jquery中:

1. $是Jquery的簡寫形式,所以,Jquey()和$()的意思是一樣的;所有用$()的地方,$都可以用Jquery代替;

2. 因爲不能假定$在任何環境中都是有效的,所以,插件中一般用Jquery定義,而不用$定義;、

3. 用Jquery.extend增加的函數,或者說擴展的函數,可以理解成添加類方法——用類名調用

4. 用Jquery.fn.extend增加的函數,或者說擴展的函數,可以理解成添加對象方法,即添加成員函數,用對象名調用

5. Jquery.fn=Jquery.prototype,所以,Jquery.fn是Jquery.prototype的別名;

6. 那麼Jquery.prototype是什麼呢? 這個牽涉到Javascript的對象生成過程,以及結構:

    建立Javascript普通對象-》Javascript普通對象的constructor屬性指向constructor對象,constructor對象的prototype屬性指向

    prototype對象,Javascript普通對象的隱藏屬性_proto_指向prototype對象,具體結果圖可以參考

    http://yangsp1.javaeye.com/blog/499264

 

7. 以下代碼:

    var $jc = $.jcarousel;//$有一個jcarousel屬性,該屬性也是一個對象(摘自Jcarousel插件),並起別名爲$jc

     $jc.fn.extend = $jc.extend = $.extend;// $jc 的對象方法=$jc 的類方法=Jquery的類方法;

                                                                 // 即擴展方法可以使用上面3個方式調用,但意義不同。

8. 代碼形式:

    (function($){.....})(Jquery)

    //用上面的函數形式作爲包裹器,把代碼包含在內部,含義是:

      function($){....}函數定義,有一個形式參數$;

      (function($){....})(Jquery)用Jquery作爲實參調用上述函數

      用途:在該函數內部用$不會引起衝突,所以起到包裹器的作用。  

    

發佈了27 篇原創文章 · 獲贊 7 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章