我正在尝试用两个构造函数创建一个ES6类。代码如下所示:
class MyClass {
constructor(a, b) {
this.a = a;
this.b = b;
}
constructor(c) {
this.a = c;
this.b = c;
}
}
但是我得到了这个语法错误:
Uncaught SyntaxError: A class may only have one constructor
。
有什么解决办法可以让我有多个构造函数,还是只限于JS中的一个构造函数?
发布于 2022-08-10 20:56:55
JavaScript没有内置的重载。但是你可以使用默认的参数来做你想做的事情。
class myClass {
constructor(a, b = a) {
this.a = a;
this.b = b;
}
}
如果它没有您的示例那么简单,您可以为b
提供一些其他的默认值,而这并不是一个可能的实际值。然后,您可以检查该值是否为默认值,并运行不同的代码。
class myClass {
constructor(a, b = undefined) {
if (b === undefined) {
// do the 1-argument initialization
} else {
// do the 2-argument initialization
}
}
}
https://stackoverflow.com/questions/73312567
复制相似问题