给定一个简单的类
class Foo {
constructor(x) {
if (!(this instanceof Foo)) return new Foo(x);
this.x = x;
}
hello() {
return `hello ${this.x}`;
}
}
是否可以不使用 new
关键字调用类构造函数?
使用应该允许
(new Foo("world")).hello(); // "hello world"
或者
Foo("world").hello(); // "hello world"
但后者失败了
Cannot call a class as a function