問題タブ [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 では、グローバル シンボルとローカル変数が競合しています。コードは次のとおりです。
なぜこれが起こるのですか?バグですか?
javascript - JavaScript のカスタム配列のような getter
次のような単純な ES6 クラスがあります。
new Ring(1, 2, 3)[3]
Ring オブジェクトのインデックスがラップして、 1 が返され、3 が返されるようにしたいと考えていますnew Ring(1, 2, 3)[-1]
。これはES6で可能ですか?もしそうなら、どのように実装しますか?
完全にカスタマイズされたゲッターを許可するプロキシについて読んだことがありますが、プロキシをクラスに適用する方法がわかりません。私はこれを管理しました:
myRing
ラッピング インデックスをサポートする Ring オブジェクトになりました。問題は、毎回そのように Ring オブジェクトを定義しなければならないことです。new Ring()
呼び出しがそれを返すように、このプロキシをクラスに適用する方法はありますか?
javascript - ES6 - クラス プロトタイプをシングルトンにアタッチする
「新しい」クラスを既存のインスタンスにアタッチする最善の方法は何だろうと思っています。
例: IPC チャネルを介して通信できるように、既存の IPC クラス インスタンスに「拡張」する必要がある「ワーカー」クラスがあります。
そして、次のように使用できます。
これはパフォーマンスを低下させるため、悪い習慣です.. https://developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf
この場合、「send」メソッドは何百万回も呼び出されます。
このようなユースケースでは、何をお勧めしますか?
Worker インスタンスですべての関数を再度作成し、そのメソッドで ipc.func() を呼び出すこともできますが、これもアンチパターンのように感じます。
ありがとう
説明:
「ホスト」ワーカー (メイン) が 1 つあります。これには、既に初期化された IPC (node-ipc) インスタンスがあります。
ワーカー「子」を作成するときはいつでも、(既存の) 親 IPC インスタンスを使用して子ワーカーに接続したいと考えています。
したがって、新しい Worker({ipc:ipc}) を作成するときはいつでも、worker.prototype を IPC インスタンスにアタッチできると便利です。したがって、worker.send() と IPC インスタンスを実行するだけです。そのメイン - >子チャネルから行くことを知っています..
javascript - 空の ES6 クラスの初期化
表示、作成、更新などに一連のプロパティを受け取るクラスである View があるアプリを構築しています。
私はこのようにビューを設定します
View
新しいビューが作成されているときに aを初期化できるようにしたいのですが、正しい方法は次のように考えています
let newView = new View()
残念ながら、これを行うと、コンストラクター関数が呼び出されないようです。このテストを実行すると
expect(newView.id).toBe(undefined)
エラーが発生しますcannot read property id of undefined
。
let newView = new View({})
正しく返されますが、空のオブジェクトを提供するのは少し奇妙です。これは正しいです?空のクラスをインスタンス化するより良い方法はありますか?