淺析jQuery基本結構($實現原理)


  jQuery是一個非常好的庫,學習它的實現原理是一個很好的提高代碼編寫能力的途徑,這里來簡單解析下jQuery的基本架構,主要來說下$符號的實現原理。直接看代碼吧。

<script>
  (function(w){
        //工廠
        function jQuery(selector, context){
            return new jQuery.fn.init(selector, context);
        }
        //給原型提供一個簡寫方式
        jQuery.fn = jQuery.prototype = {

        };
        //init才是jQuery中真正的構造函數
        var init = jQuery.fn.init = function(selector, context){

        };
        //把構造函數的原型,替換為jQuery工廠的原型
        //這么做的目的是為了實現jQuery的插件機制,讓外界可以通過jQuery方便的進行擴展
        init.prototype = jQuery.fn;
        w.jQuery = w.$ = jQuery;
    }(window));
</script>

  1.jQuery借助了沙箱模式,其實整個jQuery包中的代碼就是一個自執行函數,並且把window對象作為參數傳遞了過去。

  2.jQuery函數只是一個工廠,真正的構造函數時jQuery.fn.init( )

  3.把init的原型對象替換為jQuery.fn,其實也就是替換為了jQuery這個函數自己的原型對象,也就是jQuery.prototype,這么做的目的是為了實現插件機制,讓外界可以通過jQuery方便的進行擴展。

  比如,我們要做一個對話框插件,就可以這么做:  

jQuery.fn.jqAlert = function(msg){
    alert(msg);
}

  這樣一個簡單的jq插件就做好了,用的時候只需要調用:  

$().jqAlert('aaa');

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM