首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为ES6类提供多个构造函数?

如何为ES6类提供多个构造函数?
EN

Stack Overflow用户
提问于 2022-08-10 20:50:34
回答 1查看 57关注 0票数 0

我正在尝试用两个构造函数创建一个ES6类。代码如下所示:

代码语言:javascript
运行
复制
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中的一个构造函数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-10 20:56:55

JavaScript没有内置的重载。但是你可以使用默认的参数来做你想做的事情。

代码语言:javascript
运行
复制
class myClass {
    constructor(a, b = a) {
        this.a = a;
        this.b = b;
    }
}

如果它没有您的示例那么简单,您可以为b提供一些其他的默认值,而这并不是一个可能的实际值。然后,您可以检查该值是否为默认值,并运行不同的代码。

代码语言:javascript
运行
复制
class myClass {
    constructor(a, b = undefined) {
        if (b === undefined) {
            // do the 1-argument initialization
        } else {
            // do the 2-argument initialization
        }
    }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73312567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档