早些天寫過了類的實現,接着我們看看的靜態類的實現。這東西在Javascript里用得會非常的頻繁,因為針對現在的網頁,多個基於同一個類對象的頁面不多,往往不同塊對象的交互就可以解決問題了,這就需要在JS針對元素定義幾個靜態類就可以完事了,進入正題。
這次我們直接看例子:
/***定義靜態類***/ var Core = {}; Core.StaticClass = (function(){ var Return = { Property: "Test Static Property", //公有屬性 Method: function(){ //公有方法 alert(_Field); //調用私用字段 privateMethod(); //調用私用方法 } }; //定義返回的公有對象 var _Field = "Test Static Field"; //私有字段 var privateMethod = function(){ //私有方法 alert(Return.Property); //調用屬性 } return Return; //生成公有靜態元素 })();
這次,我用的是閉包的方式去實現,其中最重要的一點是reutrn Return; 這里會引伸到值類型與引用類型的概念。在js里,Object就是一個引用類型,在閉包里,我會拋出一個包含有屬性與方法的Object的引用,這樣,也可以說是把這個Object拋向了外部,實現了公開。StaticClass這個變量接住了Return引用。 對於閉包內部的私有字段與方法都是沒有被拋出的,這樣就可以形成一個私有的環境。
很多時候我們都會用這種技巧去對JS進行分塊,讓程序不會那么的混亂。
上面的例子沒這么干過的兄弟們也可以自己去試試。忘了,剛剛那個例子大家可以這么樣去試試。
Core.StaticClass.Method();
Core.StaticClass.Property = “Test2″;
Core.StaticClass.Method();
轉載請注明轉自《Javascript 靜態類的實現》