2017-02-10 88 views
2

使用ES6类语法,是否可以从父类创建当前类的新实例?例如:ES6类:是否可以从父类访问子类的构造函数?

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

class Child extends Base {} 

(new Child()).withFoo(); 

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

+1

在JavaScript中,“class”*是构造函数。 – 4castle

+0

想要这种行为的原因是什么? – Mjh

+0

@Mjh您希望基类包含自定义构造函数(例如工厂方法)的任何情况。在我的情况下,我需要一个方法来操作基类中的不可变对象。 – mkrause

回答

5

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