【问题标题】:Dojo parameterless constructor calls base constructor with parametersDojo 无参构造函数调用带参数的基构造函数
【发布时间】:2011-10-08 19:34:14
【问题描述】:

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

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

【问题讨论】:

    标签: javascript oop inheritance constructor dojo


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-03
      • 2015-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多