Javascript 類與靜態(tài)類的實(shí)現(xiàn)(續(xù))
更新時(shí)間:2010年04月02日 21:23:39 作者:
由于MM的事件已干完,接著我們的靜態(tài)類的實(shí)現(xiàn)。這東西在Javascript里用得會(huì)非常的頻繁,因?yàn)獒槍?duì)現(xiàn)在的網(wǎng)頁,多個(gè)基于同一個(gè)類對(duì)象的頁面不多,往往不同塊對(duì)象的交互就可以解決問題了,這就需要在JS針對(duì)元素定義幾個(gè)靜態(tài)類就可以完事了,進(jìn)入正題。
這次我們直接看例子:
/***定義靜態(tài)類***/
var StaticClass = (function(){
var Return = {
Property: "Test Static Property", //公有屬性
Method: function(){ //公有方法
alert(_Field); //調(diào)用私用字段
privateMethod(); //調(diào)用私用方法
}
}; //定義返回的公有對(duì)象
var _Field = "Test Static Field"; //私有字段
var privateMethod = function(){ //私有方法
alert(Return.Property); //調(diào)用屬性
}
return Return; //生成公有靜態(tài)元素
})();
這次,我用的是閉包的方式去實(shí)現(xiàn),其中最重要的一點(diǎn)是reutrn Return; 這里會(huì)引伸到值類型與引用類型的概念。在js里,Object就是一個(gè)引用類型,在閉包里,我會(huì)拋出一個(gè)包含有屬性與方法的Object的引用,這樣,也可以說是把這個(gè)Object拋向了外部,實(shí)現(xiàn)了公開。StaticClass這個(gè)變量接住了Return引用。 對(duì)于閉包內(nèi)部的私有字段與方法都是沒有被拋出的,這樣就可以形成一個(gè)私有的環(huán)境。
很多時(shí)候我們都會(huì)用這種技巧去對(duì)JS進(jìn)行分塊,讓程序不會(huì)那么的混亂。
上面的例子沒這么干過的兄弟們也可以自己去試試。忘了,剛剛那個(gè)例子大家可以這么樣去試試。
StaticClass.Method();
StaticClass.Property = "Test2";
StaticClass.Method();
一個(gè)人能夠走多遠(yuǎn),取決于與誰同行
復(fù)制代碼 代碼如下:
/***定義靜態(tài)類***/
var StaticClass = (function(){
var Return = {
Property: "Test Static Property", //公有屬性
Method: function(){ //公有方法
alert(_Field); //調(diào)用私用字段
privateMethod(); //調(diào)用私用方法
}
}; //定義返回的公有對(duì)象
var _Field = "Test Static Field"; //私有字段
var privateMethod = function(){ //私有方法
alert(Return.Property); //調(diào)用屬性
}
return Return; //生成公有靜態(tài)元素
})();
這次,我用的是閉包的方式去實(shí)現(xiàn),其中最重要的一點(diǎn)是reutrn Return; 這里會(huì)引伸到值類型與引用類型的概念。在js里,Object就是一個(gè)引用類型,在閉包里,我會(huì)拋出一個(gè)包含有屬性與方法的Object的引用,這樣,也可以說是把這個(gè)Object拋向了外部,實(shí)現(xiàn)了公開。StaticClass這個(gè)變量接住了Return引用。 對(duì)于閉包內(nèi)部的私有字段與方法都是沒有被拋出的,這樣就可以形成一個(gè)私有的環(huán)境。
很多時(shí)候我們都會(huì)用這種技巧去對(duì)JS進(jìn)行分塊,讓程序不會(huì)那么的混亂。
上面的例子沒這么干過的兄弟們也可以自己去試試。忘了,剛剛那個(gè)例子大家可以這么樣去試試。
復(fù)制代碼 代碼如下:
StaticClass.Method();
StaticClass.Property = "Test2";
StaticClass.Method();
一個(gè)人能夠走多遠(yuǎn),取決于與誰同行
相關(guān)文章
JavaScript 構(gòu)造函數(shù) 面相對(duì)象學(xué)習(xí)必備知識(shí)
關(guān)于JavaScript構(gòu)造函數(shù),如今出現(xiàn)了很多JavaScript的框架,例如jQuery、Ext等等這些,這些將JavaScript作為一種面向?qū)ο蟮恼Z言進(jìn)行編程,那么JavaScript到底是怎么樣實(shí)現(xiàn)面向?qū)ο蟮囊恍┨卣鞯哪?,首先,我們來看看JavaScript怎么樣來定義一個(gè)構(gòu)造函數(shù)。2010-06-06mapper--圖片熱點(diǎn)區(qū)域高亮組件官方站點(diǎn)
2007-12-12關(guān)于JavaScript定義類和對(duì)象的幾種方式
在說這個(gè)話題之前,我想先說幾句題外話:最近偶然碰到有朋友問我“hoisting”的問題。即在js里所有變量的聲明都是置頂?shù)?,而賦值則是在之后發(fā)生的。2010-11-11javascript面向?qū)ο笾甁avascript 繼承
所有面向?qū)ο蟮恼Z言都應(yīng)該有繼承的特性,JavaScript 也不例外。2010-05-05JavaScript 創(chuàng)建對(duì)象和構(gòu)造類實(shí)現(xiàn)代碼
JavaScript學(xué)習(xí)筆記:創(chuàng)建對(duì)象和構(gòu)造類.2009-07-07JS小框架 fly javascript framework
這幾天把工作中積累的東西整理成了一個(gè)小框架,分享給大家,希望對(duì)大家有用,也想聽一下大家的批評(píng)2009-11-11