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

javascript - コールバックの犠牲者としての JS モジュール パターンのパブリック メソッド。(この問題)

私は 1 日の大半をモジュール パターンとその 'this' スコープについて読むことに費やしました。最終的に、私は問題の回避策を見つけましたが、より良い方法があると感じています。

実際のコードは 200 行を超えていますが、要約すると次のようになります。objA には、objB がコールバックによって呼び出したいメソッド (publicA) があります。物事を複雑にする詳細は、publicA が仕事をするために publicA_helper からの助けを必要とすることです。( http://jsfiddle.net/qwNb6/2/ )

当然のことですが、呼び出し元のコンテキストが「this」の値に影響を与える傾向があることを理解しました。そのため、objA 内に「this」を保持する手段を追加しましたが、どれも機能していないようです。私は var objA = (){}.call({})、設定を試してみましたvar self = this;(それに応じて呼び出しself.publicA_helper()ます)。運がない。

var self;最終的に、パブリック メソッドとともにプライベート変数を追加しました。

...そして、objA.init();に渡す前に必ず呼び出すobjA.publicAことobjB.callbackで、実際に機能します。

これを行うためのより良い方法があるという感覚の巨大さを強調することはできません. 私は何が欠けていますか?

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

javascript - JavaScript デザイン パターンのヘルプが必要: モジュールの緩い拡張

明確にするために編集-@ Qantas94Heavy-それが「言っている」こと、または行うべきことを理解します。

JS モジュール パターンに関する高度なチュートリアルを読んでいたところ、次の例がありました。

私を悩ませているのは(そしてあなたの助けが必要です)最後の声明です:

これを可能にする背後にある構文規則を理解するのに苦労しています。「JavaScript Module Syntax」、「Module Pattern Short Hand」などのキーワードを検索した結果、この背後にある基盤をまだよく理解していないことがわかりました。

誰かがこれを理解したり、より深い理解を得るための正しい方向を説明したり、指摘してくれませんか?

よろしくお願いします。

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

javascript - CRM 2011 で JavaScript のモジュール パターンを使用してオブジェクトが作成されない

CRM 2011 フォームのモジュール パターンに従って JavaScript ロジックを考案しました。フォームの読み込み時にアラート'Crm object undefined'が表示されることがありますが、更新すると(単一または複数)、このエラーは消えます(スムーズに動作します)。

かなり苦労した後でも、なぜこれが起こるのか理解できません。モジュールパターンと関係がありますか?関数は正常に起動されるためonLoadですが、私を悩ませているのは、Crmオブジェクトが作成されないことがあるためです。

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

javascript - jquery アプリケーションの Javascript モジュール パターン

私が使用している特徴的なモジュール パターンについてアドバイスやヒントが欲しいので、皆さんに手紙を書いています。

Web や本でトピックを検索したところ、特定の概念を除いて、このアーキテクチャの選択に類似したものは見つかりませんでした。

このパターンを簡単に説明すると、次のとおりです。 ° すべての Web ページにはスコープを 1 つだけ含める必要があり、多くのモジュールを含めることができます。° すべてのモジュールはサブ機能を持つ IIFE です。° すべてのスコープにはドキュメントが用意されており、1 つまたは複数のモジュールを呼び出します。

よりわかりやすくするために、コード例を添付します。

このパターンは、以前に見た何かを思い起こさせますか? 適切なアーキテクチャの選択はありますか? このパターンの弱点やアーキテクチャ上の間違いはありますか? これは IIFE 関数と名前空間の適切な使用法ですか?

よろしくお願いします。

index.html

module.one.js

module.two.js

scope.js

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

javascript - JavaScriptモジュールのパターンと関数

最初にこれら 2 つのコードを比較します。

2番:

initializeView() が init() 内でのみ呼び出される場合、どちらが優れていますか? (私は彼らが同じ仕事をしたと思います)

編集:最初はグローバル名前空間について考えていませんでした。それらはすべてクラス内にあるためです。

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

javascript - JavaScript モジュール パターンを使用してクラスを作成する

モジュール パターン cuz を使用してクラスを作成します。いくつかのプライベート メンバーと関数が必要です。問題は、1 つのモジュールに対して複数のインスタンスを作成できないことです。新しいインスタンスを作成すると、以前に作成したすべてのインスタンスが置き換えられます。

これがコードです。

ここに私の質問があります: 1. これは、このパターンを使用したい場合、1 つのクラスに対して複数のインスタンスを作成できないということですか? 2.このパターンを使用できない場合、クラスでプライベートを使用できる方法はありますか?

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

javascript - モジュール パターンを使用してプライベート メソッドのパブリック変数を変更する

次のコードがあります:

上記のコードには意味がありません (テスト用です) が、一般に、最終的にパブリック変数を変更するプライベート メソッドを呼び出すパブリック メソッドを呼び出すことができるかどうかを知りたいです。これをどのように書き換えて正しい値を表示できますか?