問題タブ [es6-class]

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.

0 投票する
1 に答える
3816 参照

javascript - ES6クラスの静的セッターでクラスデータにアクセスする

私は次のことを達成しようとしています: サブクラスからのデータをスーパークラスに格納します。

static get|set x() {}次の例は実際には機能しますが、以下の例での の使用は正しくないと言われました。これは、setterメソッドthis._dataが即時関数のコンテキスト外である (つまり、関数に引数として渡されていない) を使用しているためです。そのようなセッターはもはや静的ではありません。

例:

ここで達成しようとしているのは、他の複数のサブクラスのベースにある単一のスーパークラスを持つことです。これらのサブクラスは、データが変更されるたびに PubSub 通知を行い、完全なデータ オブジェクトを送信できるスーパークラスにデータを格納できます。その PubSub イベントですべてのサブクラスによって保存されたすべてのデータを含みます。

私のセッター/ゲッターbase.jsがそうでないstatic場合、私が抱えていた問題は、のデータa.jsのみを追跡しa.js、のデータについては知らないということb.jsです。

これが実際に静的 getter/setter アクセサーの無効な使用例である場合、データ ストア機能を、データを追跡し、すべてのサブクラスの依存関係となる別のシングルトンに分割する必要があるかもしれません。世界の終わりではありませんが、これは「うまくいく」ので、静的ゲッターとセッターの使用例についてもっと知りたいです。

ご覧いただきありがとうございます。


更新:これは JS Fiddle としての例です (縮小されたテスト ケースでは、どのように機能するかを示します:

問題は、シングルトン/パブサブ ストアが優れているかどうかに関係なくstatic、スーパークラス内での使用はFilters有効ですか? 特にstatic set data (newData) {}メソッドは実際にアクセスするため、どのメソッドでもその即時関数の外部にアクセスしてはならないthis._dataと言われているため、ここでは使用しない引数としてメソッドに渡されません。staticthis._datastatic

0 投票する
2 に答える
3738 参照

javascript - Firefox で eval メソッドを使用して文字列からクラスを取得する

私が試したこと(クロムで動作します)

Firefox 46 で次のエラーが発生します。

aは未定義で、 return を使用していnew A()ますReferenceError: A is not defined

Firefox との違いは何ですか?

0 投票する
1 に答える
6223 参照

javascript - クラス内のすべての静的ゲッターを取得する

このクラスがあるとしましょう(列挙型のように使用しています):

Object.keysget に似たものはあります['Red', 'Black']か?

Node.js v6.5.0 を使用しているため、一部の機能が欠落している可能性があります。

0 投票する
1 に答える
909 参照

javascript - angular 1.5コントローラーのes6クラスで定数を定義する

これを機能させるのに苦労しています。ES 6 形式のクラスで静的変数を宣言できないことを理解しています。クラス内で定数を宣言し、クラス自体内で定数にアクセスするにはどうすればよいですか

ここに私が持っているものがあります。$onINit 中に定数のコンストラクタ値にアクセスしようとしています。this.constructor.Consts には正しい値があることがわかります。ただし、 this.getActionConsts.A を使用してそれらにアクセスしようとすると、そこにはありません。

手がかりはありますか?

または、定数を定義するより良い方法はありますか

0 投票する
1 に答える
58 参照

javascript - メソッドを配列サブクラスに追加できません

以下のコードで Array オブジェクトをサブクラス化しようとしています。ブラウザでコードを実行すると、正常に動作します。ただし、このコードを .js ファイルに配置し、そのファイルを<script>タグでインクルードすると、.add()メソッドは未定義になります。

ページをロードすると、.add()未定義です。しかし、まったく同じコードをコンソールにコピーして貼り付けると、機能します。

どうしたの?

更新 トランスパイルに Babel.js (v6.x) も使用していますが、Fuechter が回答で説明しているように、これが問題であることが判明しました。

0 投票する
1 に答える
254 参照

reactjs - ES6 の子コンポーネントでこの配列をフォーマットしてマップする場所は?

だから私は親コンポーネントからプロップを取得しています。属性が次のようなデータ構造を持っているとしましょう: [{a: "a", b:"b"}, {c:"c", d:"d"}...]

そして、これがこの小道具を取得するコンポーネントです。

子コンポーネントでそれをレンダリングする前に、これを次のようなものにマップしたいと思います

最終結果は次のようになります。

0 投票する
3 に答える
5148 参照

javascript - es6 クラス: 親クラスでフェッチ、子クラスで解決されたフェッチを参照

このデータが にあるとしますspanish.json:

そして、それをロードして検索メソッドを追加する Dictionary クラスがあります。

そして、それをインスタンス化し、それを使用して、この小さな単一ページのアプリで「calle」を検索できます。

ここまでは順調ですね。Dictionary しかし、サブクラス化して、すべての単語をカウントし、そのカウントをページに追加するメソッドを追加したいとしましょう。(男、投資家が必要です。)

それで、私は別のラウンドの資金を得て、次のことを実装しCountingDictionaryます。

新しい単一ページ アプリ:

このページが読み込まれると、h1が読み込まれ0ます。

私は自分の問題が何であるかを知っていますが、それを修正する方法がわかりません。

問題は、fetch呼び出しが を返し、PromisePromise.entriesが返されたときにのみプロパティに URL からのデータが入力されることです。それまでは、 .entries空のままです。

.countEntriesfetch promise が解決するのを待つにはどうすればよいですか?

または、ここで私が望むものを完全に達成するためのより良い方法はありますか?

0 投票する
2 に答える
124 参照

javascript - クラス内の関数内に関数を作成する

内部にいくつかの関数を持つクラスがあるとしましょう:

このコンテキストでは、 を呼び出すことができsomeClass.someFunction(someObj)、 が返され[object Object]ます。を呼び出そうとするsomeClass.someFunction(someObj).anotherFunction()と、TypeError: someClass.someFunction(...).anotherFunction is not a function.

どうすればこれを回避できますか? のようなプロトタイプを作ってみたのですがうまくいきsomeClass.prototype.someFunction.anotherFunction = function() {...}ません。

よろしくお願いします、@Medallyon。

0 投票する
2 に答える
2916 参照

istanbul - イスタンブール支店のカバレッジは ES6 クラスです。100% のはずですが、75% しかありません。

非常に単純なクラスといくつかの単体テストを作成しました。カバレッジ レポートは 100% である必要がありますが、ブランチでは 75% と表示されます。

ここに画像の説明を入力

100% に到達する方法と、何が欠けているかを理解するためにどこを見ればよいかわかりません。

アップデート

単体テスト:

Babel.js を使用して、このコードを ES6 から ES5 にトランスパイルしています。

単体テストを実行するには、次のコマンドを使用します。

冗談 ./src/ -u

すべてのコードは Github にあります: https://github.com/gyroscopico/generic-dice/tree/feature/35-vanilla