18

モジュール パターンを使用して、将来のプロジェクトをより適切に整理することに興味があります。残念ながら、モジュール パターンの簡単なチュートリアルと概念実証の例はごくわずかです。

モジュール パターンを使用して、プロジェクトを次のような構造に整理したいと思います。

project.arm.object.method();

ここで、「プロジェクト」はグローバル プロジェクト名、「アーム」はプロジェクトのサブセクションまたはブランチ、「オブジェクト」は個々のオブジェクトなどで、メソッドとプロパティが続きます。

しかし、「プロジェクト」の下に複数の「アーム」と「オブジェクト」を宣言して整理する方法がわかりません。

var project = window.project || {};
project.arm = project.arm || {};

project.arm.object = (function() {

    var privateVar = "Private contents.";

    function privateMethod() {
        alert(privateVar);
    }

    return {
        method: privateMethod
    };

}());

複雑なモジュール構造を定義する際のベスト プラクティスや規則はありますか? ラストの下に新しいアーム/オブジェクトを宣言するだけですか?

4

3 に答える 3

20

これは、あなたが何を求めているかについての良い記事です。http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth

于 2010-04-27T01:39:24.287 に答える
3

Dojo'sdojo.declareはそれ以来この種のものに最適です

継承とプロトタイプ拡張のコンパクトな表記法を使用してコンストラクターを作成します。

この種のボイラープレートを取り外すだけでも、非常に便利です。

var project = window.project || {};
project.arm = project.arm || {};

その機能が必要な場合は、を使用できますdojo.setObjectが、もちろん、同じことを行うために何かを書くのは簡単です。

dojo.setObject("project.arm.object" (function() {
    var privateVar = "Private contents.";

    function privateMethod() {
        alert(privateVar);
    }

    return {
        method: privateMethod
    };
}()));

私は最近dojo.declare/を大規模なJavaScriptプロジェクト(86ファイル、7K +行(コメントと空白行を数えない))に使用しましたが、特にやdojo.setObjectのような包含メカニズムがある場合は、すべてを整理して管理しやすくするのは簡単でした。dojo.requiredojo.provide

于 2010-04-27T02:28:54.630 に答える
2

人々がそれを好む方法には多くのニュアンスがありますが、モジュール パターン (名前付きスコープ) と呼んでいるものの主な利点は、グローバル名前空間を乱雑にしないことです。他のライブラリなどを持ち込み、名前の衝突を回避します。

その中で名前とネストされたスコープをどのように整理するかは、主に個人的な好みの問題です。

于 2010-04-27T01:41:41.520 に答える