コアポイント
apply()
ここでは、古典的なモジュールパターンのバリアントであるが、より多くの制御を伴う基本設計パターンとして使用されます。これらのパターンを説明している記事はかなりありますが、実際にそれらがどのように機能するかを実際に説明している人はほとんどなく、そのような完全な機能セットを持っている人はほとんどいません!
基本的なモジュールモードクラシックモジュールパターンは、返されたときに単一の変数に割り当てられる匿名関数のリテラルで、スクリプトのすべてのコードをラップします。関数リテラルはそれ自体を呼び出す関数にすぎないため、関数リテラルの最終割り当ては関数ではなく、関数によって返される値です。簡単な例を挙げると、関数リテラルには計算が含まれているため、合計に割り当てられた値はその計算の結果です。
の周りに配置する必要はありませんが、匿名関数を使用する場合は、事前割り当てなしで単一の式として評価するために必要です。 パブリックメンバーおよびプライベートメンバー したがって、関数リテラルでは、変数、プロパティ、関数など、他のコードを配置できます。内部データを定義するために使用されるさまざまなタイプの構文が、パブリックメンバーとプライベートメンバー間の分割を決定します。例は次のとおりです。
に割り当てられているため、これらの属性はやなどのオブジェクトの外側からアクセスできます。ただし、変数に元の範囲内でのみアクセスできるため、 ステートメントによって決定されるコンテキストを定義することです。この例では、プライベート変数の範囲は
パブリックメンバーとプライベートメンバーの間の分割は依然として同じですが、今回はこれらのメンバーを定義するために使用される元の構文ではなく、単に返されたコンテンツによって実装されています。これにより、モジュールパターンを明らかにするには、内部的に一貫したコーディングスタイルを使用できるため、有用なバリアントになります。これはまた、返送時にパブリックメンバーの名前を変更したり、どのメンバーがいつでもパブリックメンバーになるかを変更できることも意味します。このパターンは、彼の記事でこのパターンとその根底にあるモジュールパターンを説明したクリスチャン・ハイルマンによって革新されました:再びモジュールパターンを使用して - 世界に何かを明らかにします。 var sum = (function() { return 6 * 7; })();
function calculate() { return 6 * 7; }
var sum = (calculate)();
calculate
var MyModule = (function() {
var myPrivateData = 303;
function myPrivateFunction() {
alert('private');
}
return {
myPublicData : 42,
myPublicFunction : function() {
alert('public');
}
};
})();
MyModule
オブジェクトであるため、そのオブジェクト内からのみアクセスできます。 MyModule.myPublicData
MyModule.myPublicFunction
myPrivateData
モジュールモードを明らかにするmyPrivateFunction
var
MyModule
モジュールモードを使用して、2つの異なる構文を使用して、パブリックメンバーとプライベートメンバーの違いを作成します。モジュールパターンを明らかにすることは、このパターンのバリアントであり、すべての内部コンストラクトに対して同じ構文を使用できるようにし、最後のオブジェクトリテラル表記にのみ繰り返して、パブリックメンバーを返します(または明らかにします)。そのオブジェクトをもう一度見てみましょうが、今回は表示モジュールモードを使用してください:
以上がJavaScriptのモジュラー設計パターンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。