【发布时间】: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