2013-10-16 58 views
-1

我有這樣Javascript對象以功能命名空間

var a={ 
    b:{ 
     sayHi:function(){ 
      alert("hi"); 
     } 
    } 
} 

我想把它轉換成函數名間距使用原型的對象。我該如何轉換?我試着跟着。但不工作

var a=function(){}; 

a.prototype.b=function(){}; 

b.prototype.sayHi=function(){ 
     alert("hi"); 
} 

var obj=new a(); 
obj.b.sayHi(); 

任何幫助?

+0

注:「的ReferenceError:B沒有定義」 –

+0

定義「不工作」常常是讓你追求什麼樣的幫助是至關重要的。正如Matt Ball指出的那樣,您的錯誤信息可以讓您知道一些有用的信息。 –

+1

這不是「名稱空間」或原型的工作方式。 – meagar

回答

2

使用此:

var A = function(){}, 
    B = function(){}; 
A.prototype.b = new B(); 
B.prototype.sayHi = function(){ 
     alert("hi"); 
} 

var obj=new A(); 
obj.b.sayHi(); 
+0

非常感謝你@Oriol。你更喜歡哪種方法?像對象還是原型? – user2736812