ES6 クラス変数: 欠如とその代替
ES6 では、ネイティブ クラスはオブジェクトベースの構造を定義するためのよりクリーンな方法を提供します。ただし、クラスレベルの変数が存在しないという重大な制限があります。 ES5 などのフレームワークで便利なクラス変数宣言を可能にしていた従来のパターンは、ES6 では適用できなくなりました。
クラス コンストラクター メソッド (constructor()) を使用してインスタンス変数を割り当てることはできますが、実用的ではなくなります。多数のパラメータを持つクラスの場合。この課題は、この問題に対処するためのさまざまなアプローチに影響を与えました。
1. ClassConfig ハンドラーと外部宣言:
1 つの提案には、パラメーター オブジェクトを受け入れる別の ClassConfig ハンドラーの作成が含まれます。このオブジェクトはクラスにアタッチされます。 WeakMaps を統合して、クラスとパラメータ オブジェクト間の接続を確立できます。
2. ES7 以前の提案:
TypeScript または Babel を使用している場合は、次の構文を利用できます:
varName = value
これは、クラス宣言/式本体内の変数を定義します。
3.コンストラクターの割り当て:
前述したように、変数はコンストラクターで割り当てることができます:
constructor() { this.foo = bar; }
4. ES7 以降:
ES7 の新しい提案は、クラス宣言と式を通じて、より簡潔なインスタンス変数宣言を導入することを目的としています。この提案は現在改良中です。
結論:
ES6 には真のクラス変数がありませんが、このニーズに対処するために利用できる代替手段がいくつかあります。各アプローチには独自の長所と短所があり、最適な選択はアプリケーションの特定の要件によって異なります。
以上がES6 でクラスレベル変数を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。