問題タブ [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 に答える
451 参照

polymer - Polymer 2.x: ES6 クラスベースの構文、要素定義

こちらのプレビュー ドキュメントには、次のコードが含まれています。

私の質問は:MyElement最初の行のビットは 2 行目のビットと一致する必要がありmy-elementますか? 最初のビットは 2 番目のビットによって何らかの形で制約されますか? それともその逆?

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

javascript - webpack によって関数にバンドルされた後に es6 クラスをインスタンス化する方法

私はes6クラスのチュートリアルに従っていて、素敵な小さなd3ビジュアライゼーションを作成しました. それから私は2番目を作り、それらをライブラリにバンドルすることについて何かをしなければならないと思ったので、最初にモジュールを試して(ブラウザがまだそれらをサポートしていないことを発見しました)、次にwebpack 1.13をインストールして使用しrequire()ました(import動作しませんでした; 2.0 までサポートされていません)。

ただ、export default class Foo(data, args)私の bundle.jsの代わりにvar Foo = function () { function Foo(data, args) ....

インタープリターは、私がしようとすると不平を言うだけFoo.Foo(data, args)ですが、ここでの私の直感は、このようにfrankenclassをふりをしてインスタンス化することは、おそらくwebpackが意図するものではないということです? はい、すべてのモジュール ファイルを独自の bundle.js に連結してから に移動することもできますがnew Foo()、適切なバンドル ツールを使用しようとしています。

ES6で「可能な」ことと、実際にwebpackでそれを実現する方法との間には、オンラインドキュメントにかなりのギャップがあるように感じます。

index.jsスクリプトのバンドルからクラスをインスタンス化できるように、モジュールをwebpackにバンドルする段階的な方法は何ですか?


付録:(これまでに行ったこと)

0 投票する
7 に答える
40813 参照

javascript - ES6 クラス オブジェクトを JSON としてシリアライズする

myClassオブジェクトをjson にシリアライズしたいと思います。

私が考えることができる 1 つの簡単な方法は、すべてのメンバーが実際には JavaScript オブジェクト (配列など) であるため、メンバー変数を保持する変数を維持できると思います。

this.prop.foo = this.foo等々。

toJSON/fromJSONswift/java などの他の言語でクラス オブジェクトを使用していたので、クラス オブジェクト のライブラリが見つかると期待していましたが、javascript のライブラリが見つかりませんでした。

クラス構成が新しすぎるか、私が求めていることは、ライブラリがなくても簡単に実現できる可能性があります。

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

node.js - シングルトン継承のバギー動作

シングルトン パターンを使用して、javascript es6 の継承でバグのある動作を発見しました。

コードは次のとおりです。

表示は:

継承はどういうわけかめちゃくちゃになります。ここでは、属性はオーバーライドされますが、オブジェクト メソッドはオーバーライドされません。

私の質問は、なぜそれが機能しているのか(今のようにスローするように)、この動作を説明できますか?

新しいオブジェクトには、親として真新しいオブジェクトが必要なようです (以下の解決策を参照)。


同じ問題が発生した場合、ここに私の解決策があります:


私はnode.js v6.9.1を使用しています

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

javascript - JavaScript / ES7 クラスで静的メソッドを動的に呼び出す

文字列変数に className があります。動的クラスで addField 静的メソッドを呼び出したい。

CustomClient は ES7 クラスの名前です。addField は静的メソッドです。addField を動的に呼び出したい。クラスは、CustomClient、CustomContract、または CustomUser のいずれかです。

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

javascript - Reactで「通常の」ES5プロトタイプ継承を実装するには?

私は、ES6 クラスは基本的に ES5 オブジェクト システムの構文糖衣であるという印象を受けています。トランスパイラーなしで React を実行しようとしているので、React.Component から「継承」するオブジェクト「クラス」を定義するために古い構文を使用するだけでよいと考えました。

しかし、それはうまくいきません!

この gistで代替案を見つけました、および次の作品:

React.createClassまた、ヘルパーを使用できることもわかりました。

しかし、React がそのような一般的な方法で定義されたクラスを処理しない理由を理解したいと思います。ES6 クラスは使用前にインスタンス化されるようです。同様の結果で、ES5 スタイルのクラスもインスタンス化されない理由はわかりません。

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

angularjs - AngularJs 1.5 ES6:コントローラーで未定義のバインディング

コンポーネントに渡されたバインディングは html では機能しますが、コントローラーでは未定義です。

hero.component.js

HeroController.js

hero.html

角度バージョンを使用しています1.5.0

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

node.js - グローバル クラスを初期化し、ノード アプリケーション全体で使用できるようにする

そのため、現在のプロジェクトに APN (Apple Push Notification) 接続を初期化する場所がありますが、接続の複数のインスタンスは必要ないため、初期化する必要があります。現在、接続を作成し、必要なリスナーを接続に配置してエラーなどを監視するクラスがあります。次のようになります。

現在、これを使用する必要がある場所が複数ある可能性がありますが、前述したように、アプリケーション全体に対して APN 接続の接続されたインスタンスを 1 つだけ持つことをお勧めします。

では、アプリケーションのメイン ファイルでこれを初期化して名前付きエクスポートにするのが最善でしょうか、それとも別の方法で開始する必要がありますか? メインアプリケーションファイル全体をインポートすることは、回避できる場合は良い考えではないと思いますが、そうしても問題はないのでしょうか?

また、これが主観的すぎる場合は申し訳ありませんが、これはまだここで尋ねられたり、Google検索で回答されたりしていないと思います.1つ以上の良い解決策があるようです.