Более быстрый способ доступа к переменным пространства имен? - PullRequest
2 голосов
/ 23 февраля 2012

У меня есть настройка пространства имен javascript, например:

(function (skillet, $, undefined) {

  skillet.messages: {

    pages: {

        logon: {

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

  };

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

Есть ли более эффективный способ доступа к этому, чем постоянный ввод:

skillet.messages.pages.logon.errors.username

при доступеэто из других функций?

Ответы [ 3 ]

4 голосов
/ 23 февраля 2012

Если вы часто используете определенное пространство имен, вы можете создать для него псевдоним:

var shortcut = skillet.messages.pages.logon
shortcut.errors.username
2 голосов
/ 23 февраля 2012

Доступ через skillet.messages.pages.logon.errors.username будет быстрым, так как не нужно проходить цепочку прототипов. Однако, если вы используете пространства имен более одного раза, вы можете создать для него псевдоним (назначить локальной переменной):

var errors = skillet.messages.pages.logon.errors;
...
1 голос
/ 23 февраля 2012

Я бы сделал что-то вроде этого:

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

alert( getErrors().username );

Это действительно одно и то же, но ваш код немного чище.

...