ES6 クラス変数の代替
ES5 では、クラス変数を含むパターンを持つフレームワークを使用してクラスが作成されるのが一般的です。ただし、ES6 には、クラス変数を作成するための組み込みメカニズムがありません。
これに対処するために、さまざまなアプローチが提案されていますが、完全に満足できるものはどれも証明されていません。たとえば、ClassConfig ハンドラーを作成して別のパラメーター オブジェクトを渡すか、WeakMaps を使用することが検討されていますが、制限があります。
2018 年に、クラス変数のステージ 3 提案が導入されました。この提案では、クラス宣言/式内で次の構文の使用が許可されます:
varName = value
この構文はクラス内の変数を定義します。ただし、この提案はまだ開発中であり、まだ最終決定されていません。
ES wiki によると、ES6 仕様にクラス変数を含めないという決定は意図的でした。クラス定義は、クラスのメンバーではなく、クラスの機能を宣言することを目的としていました。クラス定義で指定されたプロパティには、オブジェクト リテラルに出現したかのように属性が割り当てられます。
したがって、クラス変数を定義するには、コンストラクターを使用することをお勧めします。
constructor(){ this.foo = bar }
代替案ES7 の提案は開発中です。これは、クラス宣言と式を通じてより簡潔なインスタンス変数を有効にすることを目的としています。この提案はまだ議論中であり、まだ最終決定されていません。
以上がES6 以降ではクラス変数はどのように実装されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。