JQ也要面向對象~在JQ中擴展靜態方法和實例方法


JQ也要面向對象,事實上,無論哪種開發語言,在開發功能時,都要把面向對象拿出來,用它的思想去干事,去理解事,面向對象會使問題簡單化,清晰化,今天說兩個概念“靜態方法”與“實現方法”,這個在面向對象的語言中才有的東西,現在要把它搬到JQ中來了,呵呵。

靜態方法:某種類型才有的方法,這個方法干的事情只有類型本身有關,不受具體實例對象的影響,在C#語言中,它用static表示,VB中用share表示,而在jq中我們一般用$或者JQuery表示JQ類型,而靜態方法擴展一般用$.extend。

實例方法:當類型被表示為具體事物時,它被稱為對象,或者實例對象,它所擁有的行為(方法)我們稱為實例方法(一般書上不這樣叫,一般都叫方法,但我比較喜歡實例方法這個代言,呵呵),在C#中我們從類型變為對象,可以使用new關鍵字來建立它,在JQ中,我們使用$("名稱")來表示一個JQ對象,而實例方法擴展我們一般用$.fn.extend來實現。

下面是靜態方法擴展的例子

     //$.extend,JQ擴展,添加JQ的靜態方法,與具體JQ對象無關
        //對象合並
        var person = { name: "zzl" };
        $.extend(person, { sex: "male" });
        alert(person.name + person.sex);

        //合並到JQ合局變量中
        $.extend({
            hello: function () { alert('hello'); }
        });
        $.hello();

        $.extend({ net: {} }); //jq下的net命名空間

        $.extend($.net, {
            nethello: function () { alert('hello'); }
        })
        $.net.nethello();

        var result = $.extend(true, {}, {//true表示深度拷貝,表示子對象location也會被合並
            name: "zzl", info: { address: "beijing", work: "developer" }
        }, {
            last: "zhanling", info: { work: "software developer", county: "China" }
        });

下在是實例擴展方法的例子、

        //$.fn.extend,添加JQ實例對象的方法擴展,$("#A1")它代表一個JQ對象
        $.fn.extend({ GetHtml: function () { alert($(this).html()); } });
        $("#a1").GetHtml();

OK,今天主要說的就是JQ面向對象里的“靜態方法”與“實例方法”,感覺把知識與“面向對象”聯系起來后,學起來簡單了一少,呵呵。


免責聲明!

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



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