問題タブ [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.

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

javascript - 同じ名前空間にあるが別々のファイルにある複数の「クラス」

私は名前空間を持っています:Foo.Bar.Bazその中にQuxクラスがあります。これらは、明らかにするモジュールパターンを使用して定義されました。

Quux次に、別のファイルで、この名前空間にクラスを追加します。それ、どうやったら出来るの?上記と同じパターンを使用すると、一方が他方を上書きしていると思われるため、無視されます。

0 投票する
0 に答える
95 参照

javascript - 内部関数を呼び出すモジュールの暗黙性を明らかにする - これは「におい」ですか

私は自分の JavaScript を改善しようとしており、公開モジュール パターンを使用して効果を上げていますが、モジュール内のコードが関数内にないか、作成時に戻り値が実行されることに気付きました。

これは、 によって呼び出されることに依存する関数のコンストラクターの形式を作成していることがわかりますvar myModule = new MyModule(jQuery)

これに対する正しいか間違っているかについてのフィードバックは大歓迎です。

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

javascript - 同じ名前空間内から完全修飾名で名前空間関数を呼び出す

完全修飾名を使用して公開モジュール パターンを使用して作成された名前空間内で定義された関数を呼び出したいと思う理由はありますか? 例えば、以下のA対B?

例 A.

例 B.

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

javascript - DOM の準備ができた後にのみ実行するモジュール コードを明らかにするにはどうすればよいですか?

明らかにするモジュールパターンを使用して、「名前空間」に整理します。一部の初期化コード (jQuery Validation プラグイン用) は、ドキュメントのロード後にのみ呼び出す必要があります。

ビットが DOM 対応ラッパー内にある場合$.validator.setDefaultsは呼び出されませんが、IIFE 内にある場合は呼び出されます。

なんで?DOM の準備ができた後に実行するモジュール コードをマークする「最良の」方法は何ですか?

編集:サンプルコードを問題のより具体的なものにしました

0 投票する
5 に答える
2218 参照

javascript - 公開モジュール パターンを使用して、クロージャ内の変数にゲッター/セッターを使用できますか?

セッターを使ってクロージャー変数を変更できると思ったのですが、変数に直接アクセスすると変更されません。ゲッターを使用してアクセスした場合にのみ、期待される再割り当てされた変数を取得します。別のスコープで作成されている 2 番目の変数はありますか? ここで何が起きてるの?

上記の例をフィドルに追加しました

0 投票する
0 に答える
138 参照

jquery - 「組み込み」jQuery を使用したテレリック: モジュール パターン

イベントをテレリックと jquery でバインドする際に問題が発生しています。telerik に統合された jquery のバージョンがあるドキュメントを見つけました。この場合は 1.9.1 です。

私は明らかにモジュールパターンも使用しようとしています。クリックイベントをバインドしようとした方法は次のとおりです。

これが残りです。

}();

ありがとう!!!

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

javascript - 「this」キーワードを使用して内部関数からJavaScriptの「クラス」プロパティを設定しますか?

このトピックについてこれ以上見つけることができなかったことに驚いています (私の標準以下の検索スキルかもしれません)。通常、JavaScript キーワード「this」がどのように機能するかを理解していると思うと、理解したとおりに機能しなくなります。そのような問題を 1 つ取り上げます。

私の理解:「「new」キーワードを使用して関数が呼び出されると...「this」はルート関数/「クラス」を参照します。インスタンス化された「クラス」内の関数から使用される場合、これはCALLING関数を参照します。-- これを理解することは非常に重要です。関数がページ上の別の関数から呼び出される場合、「this」キーワードは呼び出し元の関数を参照し、ターゲット関数が存在する「クラス」を参照しません。

次の例では、パブリック関数から変数を設定する 2 つの方法を試しました。どちらも失敗します。これがなぜなのか、そしてこれを機能させる方法を理解しようとしています。

更新

おそらく、Revealing Module パターンを使用していることを指摘しておく必要があります。また、そのコンテキストでの解決策を希望します。これを行うにはさまざまな方法があると確信していますが、このパターンの解決策に焦点を当てたいと思います。