问题标签 [global-variables]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
507 浏览

actionscript-3 - 避免全局状态

目前我正在编写一个应用程序。如果我想避免单例,我是否必须简单地传递周围所有内容的引用?

例如,

我有一个“主要”课程。
类:主
+----屏幕
+----相机
+----地形
+----车辆
+----物理世界

它包含我的相机、地形和车辆等类。现在,我在创建 Terrain 对象时遇到了问题。Terrain 想要访问 Main 类 Screen 对象,以便将其 Terrain Graphics 添加到屏幕上。它还想知道 Camera 对象何时绘制,以便知道绘制它的比例。它还想了解我的 PhysicsWorld 对象,以便将自己添加到物理引擎中。

我是否必须总是在构造函数之间来回拉动这些对象?我的意思是,当我创建一个地形对象时,我是否只需要传递我的屏幕对象、我的物理世界、相机等?

我有另一个随机场景,现在.. 在我的 Vehicle 类中,我需要在 Main 类上调用 Restart() 方法。这是否意味着我必须将 main 实例传递给 Vehicle?真的??

不断地向我的课程传递 4-5 件东西感觉很麻烦,尤其是在我现在的场景中,我拥有的几乎每个游戏内对象都需要屏幕、物理、相机信息等。

有什么建议么?

0 投票
4 回答
2018 浏览

c++ - 如何避免在 C++ 中意外地重新声明全局常量?

我在名为“Matrix.h”的标头中定义了一个模板矩阵类类。

在我的程序中重复使用某些矩阵。我以为我会在“Matrix.h”头文件中定义这些,如下所示:

当我这样做时,g++ 抱怨我重新定义了有问题的常量。发生这种情况是因为我将 Matrix.h 包含在两个不同的源文件中。编译这些的目标文件时,两者都以上述矩阵的定义结束,从而导致错误消息。

我的问题是如何避免这种情况?我想要一个可以被多个文件访问的常量,但我不知道把它放在哪里。

0 投票
3 回答
249 浏览

python - Python 游戏编程:我的 IO 对象是否适合作为全局变量?

我正在用 Python 编写一个游戏,其中所有 IO 活动都由一个 IO 对象完成(希望很容易将该对象换成另一个实现不同用户界面的对象)。游戏中几乎所有其他对象都需要在某些时候访问 IO 系统(例如打印消息、更新玩家的位置、显示由游戏中动作引起的特殊效果),所以我的问题是:

对全局可用的 IO 对象的引用是否有意义?

另一种方法是将 IO 对象的引用传递给__init__()每个需要使用它的对象。我知道从测试的角度来看这很好,但这值得由此产生的“函数签名污染”吗?

谢谢。

0 投票
1 回答
1403 浏览

javascript - 在onclick 事件上从全局函数调用 javascript 变量参数

0 投票
17 回答
308512 浏览

android - 如何在Android中声明全局变量?

我正在创建一个需要登录的应用程序。我创建了主要活动和登录活动。

在主要活动onCreate方法中,我添加了以下条件:

登录表单终止时执行的onActivityResult方法如下所示:

问题是登录表单有时会出现两次(该login()方法被调用两次)并且当手机键盘滑动时登录表单再次出现,我猜问题是变量strSessionString

有谁知道如何设置变量 global 以避免在用户已经成功验证后出现登录表单?

0 投票
2 回答
655 浏览

json - 从解析函数中传递JSON obj?| 菜鸟javascript问题

我正在尝试将对象从函数中传递出去。这是我的代码:

我想要做的不是在 parseJSON 函数中使用对象 o 我想将对象传递出去,以便在 loadJSON() 调用之后我可以对对象进行操作。我发现在 parse 函数中调用 innerHTML 并不“整洁”。

我已经尝试了很多迭代,例如在脚本开始时声明“var jsonOutput”,然后制作“jsonOutput = o”,但这只是让 jsonOutput 未定义。如果我尝试返回 jsonOutput,那么我不知道它被返回到哪里,无论如何我都无法使用它。

我需要创建一个全局变量吗?我尝试了一个简单的“全局 jsonOutput”声明,但它似乎没有在函数内部进行修改。

卡住了,请帮忙。

0 投票
6 回答
1025 浏览

java - 重构使用全局变量的类

我正在研究一些从全局变量中获取部分配置的类,例如

这有几个原因很糟糕,GLOBALVAR 与数据库对话以获取一些变量,这使得进行单元测试变得非常困难。另一个问题是我有很多(几十个)继承自 MyClass 的类,所以我不能轻易更改构造函数签名。

我当前的解决方案是为params,foo和. 创建一个额外的默认构造函数和 setter 方法bar

除了我这样做的方式之外,还有什么关于重构它的好方法的想法吗?我的另一个想法是使用工厂方法,但我担心我会遇到多态替换问题。

0 投票
1 回答
886 浏览

c++ - 如何在 ATL 项目中保持全局变量值不变?

我需要有关 ActiveX(ATL) 项目中全局变量使用的帮助。基本上,ActiveX 组件功能是导航到复合控件中的指定 URL(嵌入 Web 浏览器)。URL 字符串在开始时被初始化并保存在全局变量中。这是我的 ActiveX 项目的源代码文件。

(不要关心语法,我只是想展示代码流程)。

mycomponent ActiveX 的使用是在 MFC SDI(Single Doc/View) 测试应用程序中。流程是这样的:

  1. 在 App Initinstance 中,我调用了 activeX InitPlugin 来初始化 URL 字符串。
  2. 在 Information 对话框窗口中,插入 MyComponentCtrl ActiveX,通过单击 Mainframe Information 菜单项弹出 Information 对话框。目标是当信息对话框窗口弹出时,它总是可以转到指定的url。

在我的 MFC 测试应用程序启动后,我单击信息对话框菜单,信息对话框窗口可以打开并正确导航到 url。

但问题是,如果我关闭信息对话框,稍等片刻(大约 2~3 分钟),我试图再次打开信息对话框,它无法导航到 URL。我调试它,发现 MyComponenet 项目中的全局变量 szURL 失去了它的价值。

你能告诉我我应该怎么做才能解决这个问题吗?

提前非常感谢!

仿生编码器

0 投票
5 回答
4682 浏览

java - 我应该使用全局变量还是在 java 中传递变量?

我正在创建一个基于 2d 瓷砖的 sim 游戏。我有一个二维的 gridSquares 数组,可以从许多不同的类和方法中访问和更改。我应该每次都传递二维的 gridSquares 数组,还是将其设为全局?哪个是最佳实践?

我在想,是否可以选择创建一个只包含一组所有类都可以扩展的变量的类?这是一个好主意还是坏主意/不是好习惯?

我对java还是很陌生,所以我还在学习很多东西!

提前致谢。

相对

0 投票
1 回答
3961 浏览

c++ - C ++静态全局对象解决方法?

我有一个由于错误而崩溃的 C++ 程序。它甚至不会进入 main,因为在其静态全局对象的构造函数之一中访问了 NULL 指针。更糟糕的是,指针是 NULL,但应该由另一个全局静态变量设置。我想我可以将这些全局变量包装在一个设置指向对象的全局指针的函数中。我知道需要重新设计全局变量。我也知道全局静态对象的顺序是未知的。我仍然很好奇——是否有一种公认的方法来控制静态全局对象初始化的顺序?

简化示例(删除了错误检查日志等)

[游戏.cpp]

我想使用以下命令指定所有静态对象:

[建议游戏.cpp]

[不是很相关,但可能有助于理解问题]

[点.cpp]

[点.h]