問題タブ [class-fields]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - ES6 クラスで「public static フィールド」を作成するにはどうすればよいですか?
Javascript クラスを作成していますが、Java のような public static フィールドが必要です。これは関連するコードです:
これは私が得るエラーです:
ES6 モジュールではこれが許可されていないようです。目的の動作を取得する方法はありますか、またはゲッターを作成する必要がありますか?
javascript - アロー関数 (パブリック クラス フィールド) をクラス メソッドとして使用するには?
React で ES6 クラスを使用するのは初めてで、以前はメソッドを現在のオブジェクトにバインドしていましたが (最初の例を参照)、ES6 ではクラス関数をクラス インスタンスに矢印で永続的にバインドできますか? (コールバック関数として渡す場合に便利です。) CoffeeScript で使用できるように、それらを使用しようとするとエラーが発生します。
SomeClass.handleInputChange
そのため、たとえばに渡すとsetTimeout
、オブジェクトではなくクラス インスタンスにスコープが設定されwindow
ます。
javascript - ES6 クラス: スクリプト内の予期しないトークン?
ES6 を学習しようとしてサンプルをコピーしていますが、コンパイル エラーが発生します。
count = 0; を参照しているようです。
私は何を間違っていますか?
javascript - ES7 でのクラス フィールド関数のスタブ化
私のテストスイートで、関数*であるクラスのプロパティをスタブするにはどうすればよいですか? 通常のメソッドを使用すると、見つかった各メソッドを簡単に使用Object.getOwnPropertyNames(component.prototype)
してモンキーパッチを適用できますが、長い間苦労した後、クラスのフィールドに割り当てることによって作成された関数を抽出する方法が見つかりませんでした。
私のテスト スタックは、Jest と Jasmine2 および babel で構成されています。
トランスパイルの問題は、アロー関数プロパティが (もちろん予想どおり) トランスパイルされた出力「クラス」のインスタンス (実際にはもちろん関数) に割り当てられることです。したがって、このオブジェクトをインスタンス化する以外にそれらをスタブ化する方法はありません。入力 es7 コードと babel の出力の例を次に示します。ただし、私はこのソリューションが特に好きではありません。非常にハックなようです。このソリューションのもう 1 つの欠点は、コンポーネントのクラスを直接インスタンス化できないことです。
(*) この質問の背景は、es7 のようなクラスで記述された React コンポーネントの単体テストであり、自動バインドの目的でクラスのプロパティにアロー関数が割り当てられています。
javascript - クラス メソッドの外でクラス プロパティを宣言する
コンストラクターで x と y がどのように宣言されているかを確認してください。
たとえば、関数の外部でプロパティを宣言する方法はありますか:
だから私は22にaを割り当てたいのですが、コンストラクタの外でもクラス内でできるかどうかはわかりません..
javascript - Reactを使用する場合 コンストラクターで太い矢印関数またはバインド関数を使用するのが望ましいですか?
React クラスを作成する場合、どちらが望ましいですか?
また
私の同僚は、babel がコードをトランスパイルしthis
てクロージャー内でキャプチャするため、後者がメモリの問題を引き起こし、その参照によりインスタンスが GC によってクリーンアップされないと考えています。
これについて何か考えはありますか?