Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 静态声明和调用方面的名称空间_Javascript_Namespaces - Fatal编程技术网

Javascript 静态声明和调用方面的名称空间

Javascript 静态声明和调用方面的名称空间,javascript,namespaces,Javascript,Namespaces,我有以下代码: 我想对“YourGame”以及其中的“设置”进行静态引用,因此我唯一能想到的方法是将其添加为一个私有变量(类,如果您愿意),然后在返回YourGame时将其引用为一个变量,因此它可以被称为: YourGame.Settings.GetFrameRate(); 你对此有何看法?我是否应该对命名空间执行类似的操作: YourGame.Settings = function... 很明显,我不能在return中关闭函数,因为这样我就无法通过前面提到的简单调用访问GetFrameR

我有以下代码:

我想对“YourGame”以及其中的“设置”进行静态引用,因此我唯一能想到的方法是将其添加为一个私有变量(类,如果您愿意),然后在返回YourGame时将其引用为一个变量,因此它可以被称为:

YourGame.Settings.GetFrameRate();
你对此有何看法?我是否应该对命名空间执行类似的操作:

YourGame.Settings = function... 

很明显,我不能在return中关闭函数,因为这样我就无法通过前面提到的简单调用访问GetFrameRate()函数在设置中返回。您所做的一切都很好,但由于您只需要一个实例,并且没有构造函数逻辑,所以也可以使用对象文本:

var YourGame = {
    Settings : {
        // ...
    },
    // ...
}
如果需要具有“静态”属性的可实例化“类”,也可以直接向构造函数添加属性:

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

如果将来我需要制造一个贪得无厌的东西,我就完蛋了。你说得对,这当然是一个选择。有趣。我刚刚意识到,这也会使使用客户机和服务器模式开发变得非常困难。(返回公共作用域函数中的私有声明)。。。嗯,如果有什么不同的话,这就是我所希望的答案。“你做的很好”。外部名称空间是我尝试过的选项之一,我想知道它的缺点是什么。也许读起来更清楚。。啊,我讨厌有这么多选择!让我看看是否还有人对此有什么要说的,如果没有,我会记下你的答案。