2013-10-16 59 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