問題タブ [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.
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
: https://jsbin.com/koruba/2/edit?js,console - 使用しない「動作しない」例
static
: https://jsbin.com/koruba/3/edit?js,console
問題は、シングルトン/パブサブ ストアが優れているかどうかに関係なくstatic
、スーパークラス内での使用はFilters
有効ですか? 特にstatic set data (newData) {}
メソッドは実際にアクセスするため、どのメソッドでもその即時関数の外部にアクセスしてはならないthis._data
と言われているため、ここでは使用しない引数としてメソッドに渡されません。static
this._data
static
javascript - Firefox で eval メソッドを使用して文字列からクラスを取得する
私が試したこと(クロムで動作します)
Firefox 46 で次のエラーが発生します。
a
は未定義で、 return を使用していnew A()
ますReferenceError: A is not defined
。
Firefox との違いは何ですか?
javascript - クラス内のすべての静的ゲッターを取得する
このクラスがあるとしましょう(列挙型のように使用しています):
Object.keys
get に似たものはあります['Red', 'Black']
か?
Node.js v6.5.0 を使用しているため、一部の機能が欠落している可能性があります。
javascript - angular 1.5コントローラーのes6クラスで定数を定義する
これを機能させるのに苦労しています。ES 6 形式のクラスで静的変数を宣言できないことを理解しています。クラス内で定数を宣言し、クラス自体内で定数にアクセスするにはどうすればよいですか
ここに私が持っているものがあります。$onINit 中に定数のコンストラクタ値にアクセスしようとしています。this.constructor.Consts には正しい値があることがわかります。ただし、 this.getActionConsts.A を使用してそれらにアクセスしようとすると、そこにはありません。
手がかりはありますか?
または、定数を定義するより良い方法はありますか
javascript - メソッドを配列サブクラスに追加できません
以下のコードで Array オブジェクトをサブクラス化しようとしています。ブラウザでコードを実行すると、正常に動作します。ただし、このコードを .js ファイルに配置し、そのファイルを<script>
タグでインクルードすると、.add()
メソッドは未定義になります。
ページをロードすると、.add()
未定義です。しかし、まったく同じコードをコンソールにコピーして貼り付けると、機能します。
どうしたの?
更新 トランスパイルに Babel.js (v6.x) も使用していますが、Fuechter が回答で説明しているように、これが問題であることが判明しました。
reactjs - ES6 の子コンポーネントでこの配列をフォーマットしてマップする場所は?
だから私は親コンポーネントからプロップを取得しています。属性が次のようなデータ構造を持っているとしましょう: [{a: "a", b:"b"}, {c:"c", d:"d"}...]
そして、これがこの小道具を取得するコンポーネントです。
子コンポーネントでそれをレンダリングする前に、これを次のようなものにマップしたいと思います
最終結果は次のようになります。
javascript - es6 クラス: 親クラスでフェッチ、子クラスで解決されたフェッチを参照
このデータが にあるとしますspanish.json
:
そして、それをロードして検索メソッドを追加する Dictionary クラスがあります。
そして、それをインスタンス化し、それを使用して、この小さな単一ページのアプリで「calle」を検索できます。
ここまでは順調ですね。Dictionary
しかし、サブクラス化して、すべての単語をカウントし、そのカウントをページに追加するメソッドを追加したいとしましょう。(男、投資家が必要です。)
それで、私は別のラウンドの資金を得て、次のことを実装しCountingDictionary
ます。
新しい単一ページ アプリ:
このページが読み込まれると、h1
が読み込まれ0
ます。
私は自分の問題が何であるかを知っていますが、それを修正する方法がわかりません。
問題は、fetch
呼び出しが を返し、Promise
Promise.entries
が返されたときにのみプロパティに URL からのデータが入力されることです。それまでは、
.entries
空のままです。
.countEntries
fetch promise が解決するのを待つにはどうすればよいですか?
または、ここで私が望むものを完全に達成するためのより良い方法はありますか?
javascript - クラス内の関数内に関数を作成する
内部にいくつかの関数を持つクラスがあるとしましょう:
このコンテキストでは、 を呼び出すことができsomeClass.someFunction(someObj)
、 が返され[object Object]
ます。を呼び出そうとするsomeClass.someFunction(someObj).anotherFunction()
と、TypeError: someClass.someFunction(...).anotherFunction is not a function
.
どうすればこれを回避できますか? のようなプロトタイプを作ってみたのですがうまくいきsomeClass.prototype.someFunction.anotherFunction = function() {...}
ません。
よろしくお願いします、@Medallyon。
istanbul - イスタンブール支店のカバレッジは ES6 クラスです。100% のはずですが、75% しかありません。
非常に単純なクラスといくつかの単体テストを作成しました。カバレッジ レポートは 100% である必要がありますが、ブランチでは 75% と表示されます。
100% に到達する方法と、何が欠けているかを理解するためにどこを見ればよいかわかりません。
アップデート
単体テスト:
Babel.js を使用して、このコードを ES6 から ES5 にトランスパイルしています。
単体テストを実行するには、次のコマンドを使用します。
冗談 ./src/ -u
すべてのコードは Github にあります: https://github.com/gyroscopico/generic-dice/tree/feature/35-vanilla