JavaScript 中“全局”变量的最佳实践
Best practice for "global" variables in JavaScript?
我把我所有的代码都放在NS中,类似于jQuery的结构。 我有一些 NS 全局变量,我想将它们括起来,然后像这样访问 -> Global.variable_name
.
以下是我的做法。 这是好的做法吗? 有没有更好的方法来做到这一点,我不必打电话给var Global = new GlobalMaker()
我使用全局常量的所有大写字母。
var NS = ( function ( window, undefined ) { /* all my code is here */ } )( )
/** (including this code)
*GlobalMaker
*/
var GlobalMaker = function()
{
this.tag_array = [];
this.current_tag;
this.validate_input_on;
this.JSON_ON = 1; // selector between JSON and LON
this.GATEWAY = 'class.ControlEntry.php'; // for Ajax calls
this.PICTURES = '../pictures/'; // for composing tweets
this.PASS = 0;
this.FAIL = 1;
this.NOTDEFINED = 2;
};
var Global = new GlobalMaker();
/**
*Global
*/
var Global =
{
tag_array: [],
current_tag: 0,
validate_input_on: 0,
JSON_ON: 1,
GATEWAY: 'class.ControlEntry.php',
PICTURES: '../pictures/',
PASS: 0,
FAIL: 1,
NOTDEFINED: 2
}
这在不使用构造函数的情况下执行等效操作:
var Global = {
tag_array: [],
// current_tag, // huh?
// validate_input_on, // huh?
JSON_ON: 1,
GATEWAY: 'class.ControlEntry.php',
PICTURES: '../pictures/',
PASS: 0,
FAIL: 1,
NOTDEFINED: 2
};
但是我不明白没有初始化的后两个声明。
但请注意,如果按照上述指示执行此操作,则此 Global 对象仅在该外部 Arc
函数表达式中可用。 它不是真正的全球性。 另请注意,使用"global
"(小写)非常普遍;您可能需要考虑一个不同的变体名称(也许是"constants
"?
相关文章:
- 在javascript函数的循环中设置全局布尔变量的最佳语法
- 在控制器之间传递变量的最佳方式
- 在变量中保存值的最佳方法是在应用程序关闭后使用,然后使用apachecordova在android中重新启动
- 在jquery中设置多个全局变量的最佳方式
- 返回多个变量的 JavaScript 函数:数组与对象.最佳实践是什么
- 保存全局变量以供指令监视的最佳方法
- 将变量传递给AngularJS控制器,最佳实践
- 将全局配置变量传递到手把模板的最佳方式是什么
- 测试变量是否为数组的最佳方法
- 避免节点中全局变量的最佳实践
- 在没有ajax的情况下将多个变量传递到引用页面的最佳方式
- 创建静态(类)变量-最佳实践
- 传递变量:使用模块的最佳实践
- 在本地将单个变量传递给具有多个参数的函数的最佳方法是什么
- 条件变量赋值的最佳方法
- 这是检查变量是否被定义的最佳方法,而不是 null 并等于 “” 或其他任何内容
- 在 Javascript 中访问控制器变量的最佳方法是什么?
- 关联变量及其 ID 的最佳方式
- 缓存变量时,调用它的最佳方法是什么
- 创建用户可以在带有 php 或 JavaScript 的模板中使用的“变量”的最佳方式