問題タブ [revealing-module-pattern]
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.
jquery - グローバル スコープ外で jQuery リスナーをセットアップする
jQuery (または一般的には JavaScript) で多くのことを行ってからかなりの時間が経ちました。私たちのアプリは、すべてのメソッドがグローバル スコープにある状態から、すべてが独自の名前空間にある状態に移行しようとしています。
私が取っているアプローチは、公開モジュール パターンとオブジェクト リテラル パターンのハイブリッドを使用することです。
個々のページごとにオブジェクト リテラル パターンを使用しており、サーバー (ASP.NET MVC Razor) からの変数を単純にセットアップするために使用しています。
ここから、すべての面倒な作業を行う外部ファイルがあります。この特定の状況では、Kendo ContextMenu があり、ネストされた名前空間内からリスナー (jQuery) を初期化する必要があります。
すべての名前空間ビットを削除すると、このコードは期待どおりに機能しますが、Revealing Module パターンを使用すると、リスナーは「クリック」イベントでトリガーされません。
誰かが私が見逃している作品を教えてもらえますか?
jquery - .fail() コールバックからオブジェクトを返すことができませんか?
_fail コールバックを介してオブジェクトを返そうとしています (はい、これは失敗コールバックを実行するためのものです) が、failSeries はコンソールで未定義として返されます。何か案は?
次に、成功または失敗のコールバックによって返されたオブジェクトを表示するために、次の方法でモジュールを使用しています。
});
javascript - JSモジュールからオブジェクトを返すときの「未定義」
グローバル変数を定義し、グラフをレンダリングするモジュールの 1 つを介して使用できるメソッドと等しくなるように設定しました。モジュールはチャートを返す必要があるため、変数「alChart」にチャート オブジェクトを割り当てます。また、このコードでチャートが完全に正常にレンダリングされることにも言及する価値があります。
チャート レンダリング モジュール:
。準備():
javascript - 固定構造のオブジェクトを作成するにはどうすればよいですか?
公開モジュール内に次のコードがありますが、imageListItem
厳密に DTO であり、情報を隠す必要がない を宣言/定義する方法がわかりません。このオブジェクトを正しく定義していますか?
ではimageListItem
、後で使用するためにオブジェクト構造を宣言したいと考えています。その宣言は、そのオブジェクトが後でどのように使用されるかに論理的に依存するべきではありません。imageListItem
つまり、新しいプロパティを動的に割り当てたり、誤ってプロパティを削除したりしたくありません。プロパティへの割り当ては、厳密には、オブジェクトで既に宣言されているプロパティに対してのみ行う必要があります。
Object.freeze()
プロパティが追加または削除されないようにすることで、これをほぼ実現しますが、プロパティが変更されるのも防ぎます。
例えば、私はこれが欲しい:
私はこれをしたくない:
分かりますか?に追加されfreeze
ないようにしたいのですが、 の値を変更できないようにしたくありません。quaxxor
obj
foo
javascript - サーバーで無視されたモジュールパターンを明らかにするjavascript
私のjavascriptコードが完全に私のWebホストにある理由の答えを探していました。私が収集したものから、これはグローバル名前空間の汚染を減らすための良い習慣であるため、javascript の公開モジュールパターンを使用してそれらを変更しようとするまで、以前は正常に機能していた既存の javascript 関数があります。この範囲外の関数呼び出しはないため、return を使用して関数を指すことはしませんでした。Visual Studio からのテスト中に、さまざまなブラウザーで問題なく動作しました。
Godaddyサーバーに設定する必要があるものはありますか? 私は彼らにサポートを求めようとしましたが、助けはありませんでした。以下は私のコードのサンプルです。私は実際にはこの範囲にもっと多くの機能を持っていますが、この質問のために短くしました。前もって感謝します。
javascript - JS で公開モジュール パターンを使用し、参照を渡し、ロード順序の問題を回避するにはどうすればよいですか?
私はJavascriptでモジュールパターン(またはモジュールパターンを明らかにする)(私が理解していること)を試してきました。現時点での主な目的は、コードの整理とプロジェクトのグローバル スペースのクリーンアップですが、他にも多くの利点があると確信しています。
私が従ってきた基本的なパターンは、ほとんど次のようになります。
これの主な利点は、obj の内部メソッドとプロパティを隠すことにより、コードがよりクリーンになり、構造が改善されることです。私が見ていない明白なメリットは他にありますか? このパターンをいつ、いつ使用しないのか、本当に疑問に思っています。
問題 1:私が気に入っていることの 1 つは、window と jQuery への省略形の参照として w と $ を渡すことができることですが、これに別のライブラリを追加しようとすると、機能しないようです (特に速度.js)。
編集: jQuery を含めたので、速度はそれ自体をグローバル jQuery obj にアタッチします。インポートは速度ではないグローバル用であるため、同じ方法でインポートすることはできません。
問題 2:次に、読み込み順序に関係なくこのパターンを機能させることが可能であるとどこかで読んだことがありますが、それは本当ですか?もしそうなら、どのように変更すべきですか?
NB :重要なことに、require や borwserify の実装などの代替ではなく、このパターンとそれで可能なことを理解しようとしています。