Microsoft Edge の機能を調べてみた - Class 編
ずっと JavaScript の予約語だった Class がやっと使える様になりました。
ざっくりいうと、初期設定をするコンストラクタと、関数の塊を内包したものです。
他の言語のものと似ており、一応継承はできます。
現状、Edge でこの機能をそのまま使うことができません。
アドレスバー about:flags 入力し、「開発者向け設定」ページの「試験的な JavaScript 機能を有効にする」チェックを入れて Edge を再起動してください。
書き方
コンストラクタはクラスが new された時に呼ばれ、設定したい変数や即実行したい関数の呼び出しをしたい時に書きます。
コンストラクタやコンストラクタの引数は省略可能。
今までの方法ですとこのようにしていたと思います。
継承
通常に使う分には prototype とさほど変わりはありませんが Class は他のクラスの機能を継承することができます。
extends クラス名で他のクラスを継承でき、Loud のコンストラクタで呼び出している super で継承元のコンストラクタを呼び出すことができます。
Message を継承しているので l.say() で Message クラスの say 関数を呼び出せます。
こちらを prototype で行うと、それなりに面倒なので簡単な記述になって良いかと。
余談1
コンストラクタの引数も 「x,y=2」「...args」 のようなデフォルト引数や可変長引数を設定できます。
余談2
ECMAScript 2015 の仕様では Array などのビルトインオブジェクトを継承したクラスを定義できる模様。
Microsoft Edge ではどこまで対応されるされるかわかりませんが、現在開発中というステータスとなっています。