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面向對象里的“靜態方法”與“實例方法”,感覺把知識與“面向對象”聯系起來后,學起來簡單了一少,呵呵。