2012-02-23 13 views
2

私のようなjavascriptの名前空間の設定があります。名前空間変数に簡単にアクセスできますか?

skillet.messages.pages.logon.errors.username

を他の関数からこれをアクセスするとき:

(function (skillet, $, undefined) { 

    skillet.messages: { 

    pages: { 

     logon: { 

      errors: { 
       username: 'user is wrong' 
      } 
     } 
    } 

    }; 

} (window.skillet = window.skillet || {}, jQuery)); 

が常に入力するよりも、これをアクセスするより効率的な方法はありますか?

答えて

4

あなたが特定の名前空間をたくさん使用している場合、あなたはそれにエイリアスを作成することができます。プロトタイプチェーンを歩いたことがありませんので、

skillet.messages.pages.logon.errors.usernameを経由してアクセスする
var shortcut = skillet.messages.pages.logon 
shortcut.errors.username 
+0

甘い!あなたがどこからでも 'skillet.shortcuts.logonErrors.username'のように簡単にアクセスできる別の' shortcuts'タイプの 'skillet.shortcuts {logonErrors:skillet.messages.pages.logon.errors}'をセットアップすることは理想的ですか? – Andy

+0

これはさらに進歩です。あまりにも多くのエイリアスを作成せず、適切なエイリアスに別の問題が見つかった場合、 'skillet'オブジェクトの下に**エイリアス**を作成することができます。 :) – steveyang

+0

笑 - 円の仕事! – Andy

2

は迅速になります。あなたはそれへのエイリアスを作成することができ、よりお度も名前空間を使用している場合は、(ローカル変数に割り当てる):

function getErrors() { 
    return skillet.messages.pages.logon.errors; 
} 

alert(getErrors().username); 

それはということになります:

var errors = skillet.messages.pages.logon.errors; 
... 
1

私はこのような何かをするだろう同じこと、本当に、あなたのコードは少しきれいです。

関連する問題