javascript - Dojo 无参数构造函数调用带参数的基础构造函数

标签 javascript oop inheritance constructor dojo

是否可以在 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");
...

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

最佳答案

您需要关闭自动构造函数链接。看看here有关如何手动覆盖自动行为的示例。

关于javascript - Dojo 无参数构造函数调用带参数的基础构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6752558/

相关文章:

javascript - 附加到最近的选择

C# - 对象是否应该在更改状态等内容时负责创建历史对象?

ruby - 如何在初始化父类时返回子类的新实例?

javascript - JS添加 'onclick'时如何传递变量

javascript - 从表中提取数据

javascript - 函数作为 Javascript 中函数的参数

python - 如何使父类(super class)方法的局部变量可供子类使用,其中父类(super class)被另一个类调用

php - 如何防止在 PHP 的子实例中使用公共(public)父方法?

c++ - C++ 成员类是在父类之前构造的吗?

javascript - 如何确保不同严重程度的 toastr 显示不同?