0

ブラウザにロードするファイルが2つあります。

1つは、最初の呼び出しで埋め込みスクリプトとして直接ロードされます。

もう1つは、スクリプトノードを作成して.innerHTMLプロパティに書き込むことにより、動的にロードされます。

私はこのように物事をしなければなりません。

JavaScriptの両方のスニペットはモジュールパターンにカプセル化されています。

次のように同じ名前空間を付けることはできますか?

擬似コード

var ns = Module Pattern 1

var ns = Moudule Pattern 2

そうでない場合は、関数を返すときに関数に均一にアクセスできるように、同じ名前空間を付ける別の方法はありますか?

ns.function1();
ns.function2();

これは1つのアプリケーション用であるため、名前空間を1つだけにすることをお勧めします。しかし、私が述べたように、私は2つのスニペットをロードする必要があります。

ありがとう

4

1 に答える 1

1

妥当なミックスインの実装では、次のようなことを試してみてください。

var ns = ns || {};
mixin(ns, Module Pattern 1);

var ns = ns || {};
mixin(ns, Module Pattern 2);

次に、これらを任意の順序でロードできます。


または、モジュールパターンを少し変更して、名前空間オブジェクトをパラメーターとして受け入れ、両方に同じものを指定します。

var ns = ns || {};
(function(namespace) {
    // ...
    namespace.function1 = //...
}(ns));   

// (again for module 2)
于 2012-07-18T16:42:06.950 に答える