Dojo 无参数构造函数调用带参数的基本构造函数

发布于 2024-11-25 06:14:10 字数 717 浏览 0 评论 0原文

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

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

Is it possible in javascript / dojo toolkit to call the base constructor with explicitely
set constructor arguments (out of the constructor of the inherited class)

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!");
   }
});

I could use this.inherited(arguments, ["Hello "]) but this will produce two calls of the base constructor (one without and one with the given argument).
(will produce output of: undefined\n"Hello "\n"world!").

I already tried using the following ways:

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

but all things I did seems to call the base constructor twice. Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

雨落星ぅ辰 2024-12-02 06:14:10

您需要关闭自动构造函数链接。请查看此处,了解如何手动覆盖自动行为。

You need to turn off automatic constructor chaing. Take a look here for an example of how to manually override automatic behaviour.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文