constructor を書きたくないときの対処方法でこんなの思いついた
class C extends function(opt) {
this.x = opt.x
this.y = opt.y
} {
show() { console.log(this.x, this.y) }
}
new C({x: 1, y: 2}).show()
// 1 2
継承する関数だから constructor として実行される
constructor をクラス定義に書かなくていいいし
書き方的に一番上に固定されるから constructor 探す手間がはぶける
本来のプロトタイプで作るみたいに constructor とそのプロパティを別に分けられる
結構いいところが多いんだけど 関数を継承してるので 特定のクラスを継承したクラスを作れないデメリットあり
constructor を書きたくない理由は
◯ 単語が長い上に打ちづらい
◯ 他のメソッドと分けたい
◯ super() 書かないといけないのが面倒
クラスプロパティの記法だと defineProperty になって setter を使った代入にならない
class X (opt) {
x = opt.x
y = opt.y
show() { console.log(this.x, this.y) }
}