問題タブ [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 投票する
1 に答える
1612 参照

javascript - サブモジュールを追加し、プライベート関数にアクセスするモジュールパターンを明らかにする

公開モジュール パターンを使用してコードをセットアップしたいと考えています。メインモジュールのプライベート関数にアクセスできるようにサブモジュールをセットアップしたいのですが、これを行う方法に固執しています。

これは、遊んでいるサンプルコードの一部です。

Utils モジュールからプライベート関数を呼び出せるようにするにはどうすればよいですか?

編集:

Jsutを明確にするために、メインモジュールに追加されるサブモジュールを作成できるようにしたいので、それが役立つ場合はサブモジュールもモジュールにすることができます。私はこれを読んでいました: http://www.sitepoint.com/modular-design-patterns-in-javascript/これは apply() を使用して2番目のモジュールを追加しますが、拡張およびプライベート化機能を使用してモジュールをに追加する必要がありますメインのもの。できれば避けたいですよね?

別の編集 要するに、1 つのメイン モジュールと 2 番目のモジュールを、1 つのセクションでのみ使用される新しいファイルに入れたいと考えています。メインモジュールのプライベート関数を引き続き参照できるようにするには、2番目のモジュールが必要です。これは可能ですか?

これが私が言及するコードです:

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

javascript - JS:モジュールパターンを明らかにする - 内部オブジェクトと配列にアクセスしますか?

公開モジュール パターンを使用して、非静的プライベート変数への直接アクセスを提供するにはどうすればよいですか? ここに私が持っているものがあります:

A は arr を直接参照するようですが、O は初期化時に obj の値のコピーに落ち着きます。obj が string、float、または boolean の場合の動作は理解できます。

もちろん、パブリックな get_obj メソッドを介して obj を公開することもできますが、ヘルプ メソッドを追加せずにこれを解決できるかどうか、まだ興味があります (obj へのインターフェイスをそのまま維持したい)。さらに、オブジェクトが持たない配列の何が特別で、この動作を引き起こすのでしょうか?

洞察力に本当に感謝します。

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

javascript - JS モジュールのパターンを明らかにする、何が間違っているのか

私は公開モジュール パターンを利用しようとしてきましたが、css3 以外のカスタム スクロール バー用の関数を作成しようと考えました。

上記がモジュールです。私は次のように値を設定しています:

ただし、テストしようとすると、「未定義」やその他のエラーが発生し続けます。console.log(settings.wrapper)モジュール内で実行すると、 が返されますundefined。どこが間違っているのか本当にわからないので、どんな助けでも大歓迎です。前もって感謝します

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

javascript - Angular でモジュール パターンを明らかにする

今日のコードは、特に Angular サービスの Revealing Module パターンを使用した Angular で再び私を怒らせています。私が始めたとき、私はそれについて何の問題も見ませんでした...今は機能していないことを除けば...わかりません。それが角張っているのか、それとも私が何か愚かなことをしているのかを知りたいと思っています。コードは次のとおりです。

そして、ここでそれが呼び出されます:

そして、これがFirefoxが私に指を与える方法です:

ヘルプ?誰??

isready 関数の使用例を次に示します。

そして、次のようにデータを消費します。

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

javascript - モジュール パターンを明らかにする際にモジュール関数からモジュール var に明示的にアクセスする

スコープに問題があります。明らかにするモジュール パターンを実装する次のコードがあります。

これにより、ダイアログ「configData」が発生します。

ただし、関数 sayOhai には、定義された var を使用して「ohai」と言ってもらいたいです。sayOhai のパラメータ名を変更したくない場合、sayOhai 内で foo の値にアクセスするにはどうすればよいですか? を試しalert (this.foo)ましたが、未定義です。

繰り返しますが、これは理論的な質問なので、変更sayOhai(foo)は私が探している解決策ではありません。var の名前とメソッドのパラメーターは同じままにする必要があります。では、sayOhai の範囲から見た var foo の完全修飾名は何でしょうか?

前もって感謝します

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

javascript - モジュールのパターンを明らかにする - グローバル変数 / 初期化関数

最近、構造化されていない JS の書き方をやめたいと思っています。少なくとも私にはかなり便利に思えますが、いくつかの質問に対する答えがまだ見つかりません。では、JS にいくつかの異なるモジュールがあるとしましょう。この場合は "site" と "nav" です。「nav」モジュールにはいくつかのプライベート関数があり、おそらくいくつかのパブリック関数も後で含まれます。これらのモジュールで init 関数を呼び出す最良の方法は何ですか? それらのパブリック関数を作成し、MODULE.init(); で呼び出すことを考えました。しかし、私にはこれは悪い習慣のように思えます。これまでどこにも見たことがありません。

私が赤くしたどの記事でも見つけられなかったもう 1 つの質問は、グローバル変数 (body など) を定義する方法でした。これは、おそらくモジュールのいずれかで必要です (それにいくつかのクラスを追加するか、何か)。したがって、「nav」モジュールと「site」モジュールの両方bodyで ( jQuery のように) my にアクセスする必要があるとしましょう。$("body")そのようにする方が良いですか:

またはJSファイルの一番上に置く

または、コード全体を改善するためのより良い方法はありますか? よろしくお願いします。