更快地访问命名空间变量?

时间:2012-02-23 16:47:54

标签: javascript jquery namespaces

我有一个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 个答案:

答案 0 :(得分:4)

如果你经常使用某个命名空间,你可以为它创建一个别名:

var shortcut = skillet.messages.pages.logon
shortcut.errors.username

答案 1 :(得分:2)

通过skillet.messages.pages.logon.errors.username访问将很快,因为原型链不必走路。但是,如果您多次使用名称空间,则可以为其创建别名(分配给本地变量):

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

答案 2 :(得分:1)

我会做这样的事情:

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

alert( getErrors().username );

它确实是一样的,但是你的代码更清晰。