0

JavaScriptを未定の順序でロードします。名前空間を登録するための名前空間関数があります。たとえば、次のように書くことができます。

"com.stackoverflow.question".namespace(new function() {
    this.sayHelloTo = function(text) { alert("Hello" + text); }
});

残念ながら、namespace.jsロード順序はランダムであるため、が最初にロードされるとは限りませんが、他のスクリプトは名前空間関数を使用します。エラー「.namespace」を取得せずにこれを実現する方法はありますか?関数ではありませんか?

したがって、後で定義を初期化する方法が必要sayHelloToです。すべてがロードされたイベントがあります。したがって、次のステートメントは機能しますが、非常に醜いと思います。

var postInit = postInit || [];
postInit.push(function() {
  "com.foo.bar".namespace(new function() {
      this.sayHelloTo = function(text) { alert(text); }
  });
}); 

そして、イベントが発生したとき:

list.foreach(function(k, v) { v.call();  });  

これを達成するためのより良い方法はありますか?

4

1 に答える 1

1

AMDを使用する:http://requirejs.org/をご覧ください。または、用途によってはcommon.jsが機能する場合があります。

于 2012-10-10T13:30:39.557 に答える