2011-07-19 194 views
3

基类的构造是在JavaScript/Dojo工具包,能够进行与明确地 集构造函数参数的基础构造(从继承类的构造函数)道场参数的构造函数调用带有参数

dojo.provide("ClassA"); 
dojo.declare("ClassA", null, 
{ 
    constructor: function(text) 
    { 
    console.log(text); 
    } 
}); 

dojo.provide("ClassB"); 
dojo.declare("ClassB", ClassA, 
{ 
    constructor: function() 
    { 
     // want to call the base constructor of Class A with "Hello " 
     console.log("world!"); 
    } 
}); 

我可以使用this.inherited(arguments,[“Hello”]),但这会产生两个基础构造函数的调用(一个没有,另一个使用给定的参数)。 (将会产生:undefined \ n“Hello”\ n“world!”)。

我已经使用以下方法尝试:

dojo.mixin(this, "Hello"); 
dojo.safeMixin(this, "Hello"); 
dojo.mixin(ClassA, "Hello"); 
... 

,但所有的事情我做似乎两次调用基构造函数。有什么建议么?

回答

4

您需要关闭自动构造函数chaing。有关如何手动覆盖自动行为的示例,请参阅here