いつか、グローバル名前空間の乱雑さを軽減し、ライブラリのエクスポートを容易にするために、大きなオブジェクトにコードをラップして名前空間として使用することをお勧めしていると聞いたので。オブジェクト宣言前のメンバーメソッドの呼び出し
var wrapper = {
foo: function(){
return 42;
},
bar: this.foo()
};
「fooが定義されていません」と主張して失敗します。 オブジェクト宣言を終了する前にメソッドを呼び出すのはおそらく悪いので、私はbarを移動して機能しました。
var wrapper = {
foo: function(){
return 42;
},
};
wrapper.bar = wrapper.foo();
私は、これは特に、ネストされた名前空間とこのように、一種の醜いになることができると感じているので、それは難しい、一度にラッパーのメンバーのすべてを見ることにしない任意の回避策はありますか。
あなたはいずれかを呼び出す必要がありますなぜ宣言のメソッド?おそらく直ちに呼び出される関数(* IEFE *)を使用したいと思うかもしれません。 *モジュールパターン*もチェックしてください。 – Bergi