[英]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.