2011-07-14 29 views
4

我的JavaScript代碼「MyNameSpace」中有一個名稱空間。我正在創建一個靜態JavaScript類「MyChildStaticClass」。我正在使用模塊化模式。下面是我的代碼:有關命名空間下靜態類的問題

if (typeof MyNameSpace == 'undefined' || !MyNameSpace) { 

    var MyNameSpace = {}; 
} 

    var MyNameSpace = (function(MyNameSpace) { 

     MyNameSpace.MyChildStaticClass = (function() { 
      var myobject; 
      myobject = { 
       x:function(str) { 
        alert(str); 
       } 
      }; 

      return myobject; 
     })(); 
     return MyNameSpace; 
    } (MyNameSpace || {})); 

上面的代碼將被使用,如:

MyNameSpace.MyChildStaticClass.x('test'); 

和上述輸出將是與消息測試警報對話框。我有問題,這是創建一個靜態類和調用上述方法的好方法嗎?有沒有其他方法可以用熟練的方式寫出來?

回答

1

你會做得到相同的功能:

var MyNameSpace = {}; 
MyNameSpace.MyChildStaticClass = { 
    x : function(str) { 
     alert(str); 
    } 
} 
+0

,事實並非如此。在這裏使用你的模式不會關閉內部方法,因此他們可以從任何地方訪問。 – jAndy

+0

你對此絕對正確。我只是對我的模式說這個:它是可讀的:) –