【问题标题】:ES6 classes: is it possible to access the constructor of a child class from the parent?ES6 类:是否可以从父类访问子类的构造函数?
【发布时间】:2017-06-28 22:42:11
【问题描述】:

使用 ES6 类语法,是否可以从父类创建当前类的新实例?例如:

class Base {
    withFoo() {
        return new self({ foo: true });
    }
}

class Child extends Base {}

(new Child()).withFoo();

我正在寻找类似于 PHP 的 new self() 语法的东西。

【问题讨论】:

  • 在 JavaScript 中,“类”构造函数。
  • 想要这种行为的原因是什么?
  • @Mjh 您希望基类包含自定义构造函数(例如工厂方法)的任何情况。就我而言,我需要一种方法来操作基类中的不可变对象。
  • 由于构造函数只能是一个,所以不能有自定义构造函数s,只能有1个构造函数。您基本上希望 PHP 的静态变量可以将不同的参数传递给类的构造函数,从而使用不同的参数实例化对象。我做对了还是我错了?您有一个要解决的问题,因此最好询问该问题而不是感知的解决方案,which is also known as XY problem,我认为我们可能在这里遇到了 XY 问题。

标签: javascript ecmascript-6 es6-class


【解决方案1】:

您可以通过this.constructor 访问当前实例的构造函数。

【讨论】:

  • @cainlevy:也许你没有用new 来称呼它? new this.constructor(foo, bar)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 2019-05-21
  • 1970-01-01
相关资源
最近更新 更多