簡體   English   中英

ES6 class 具有多個構造函數的解決方法?

[英]Workaround for ES6 class to have multiple constructors?

我正在嘗試使用兩個構造函數創建一個 ES6 class。 代碼看起來像這樣:

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 中的有限構造函數?

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
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM