命名空间静态声明和调用

时间:2013-08-13 14:50:46

标签: javascript namespaces

我有以下代码:http://jsfiddle.net/pepNU/1/

我想对“YourGame”和它内部的“Settings”进行静态引用,所以我想到这样做的唯一方法是将它添加为私有变量(如果你愿意的话),然后引用它作为YourGame回归中的一个变量,因此它可以被称为:

YourGame.Settings.GetFrameRate();

您对此有何看法?我应该做更像这样的命名空间:

YourGame.Settings = function... 

我显然不能只是修改返回内部的函数,因为我无法使用像上面提到的简单调用一样在Settings中返回GetFrameRate()函数

1 个答案:

答案 0 :(得分:0)

你做的很好,但由于你只需要一个实例并且没有构造函数逻辑,你也可以使用一个对象文字:

var YourGame = {
    Settings : {
        // ...
    },
    // ...
}

如果您需要具有“静态”属性的可实例化“类”,您还可以直接向构造函数添加属性:

var YourGame = function() {
   // constructor logic
}
YourGame.foo = 10; // static property
var game = new YourGame; // instance
game.foo; // undefined
YourGame.foo; // 10