我的所有常量都接近我的javascript文件的顶部,如下所示。
当我搜索核心JQuery文件时,Constant没有任何内容,我看不出它们是在拉出常量?他们没有,他们是否通过代码传播它们,如果是这样,他们为什么不巩固它们呢?
我并不关心语言构造const
,而是关注将常量拉出到下面这样的地方。
var Constant =
{
VALIDATE_ON: 1,
JSON_ON: 0,
ROOT: '',
PICTURES: '../pictures/',
TEXT: '../text/',
FAVICON: '../images/logo_small.ico',
IMAGES: '../images/',
GATEWAY: 'class.ControlEntry.php',
ENTER_KEY: 13,
SECOND: 1000,
MINUTE: 60,
HOUR: 3600,
DAY: 43200,
AML:
{
"PASS": 0,
"FAIL": 1,
"NOTDEFINED": 2
}
};
答案 0 :(得分:4)
如果查看jQuery source code,您还会看到一些常量,这些常量在开头表示不同的正则表达式。只是它们没有在全球范围内定义以避免污染它。它们在jQuery
函数内定义。这样,在全局范围内可以使用相同名称的不同脚本之间不存在冲突风险。
因此,当然合并你的常量是一个好主意,只是不要污染全局范围。
答案 1 :(得分:1)
这在很大程度上取决于编程风格。 jQuery在jQuery函数的初始化中有一些常量,但是在整个文件中散布着很多“常量”字符串。
我个人喜欢将常量保留在文件末尾。
无论如何,如果你要在很多地方使用它们,那么分离和合并常量是很好的(我的意思是在许多地方使用一个常量)。但是如果你在代码中使用它一两次相对接近,那么最好将它保持接近其使用 - 它会更容易阅读,因为在阅读时你不会被迫上下滚动代码。
根据您提供的代码 - 您可以在一个地方拥有所有常量。恕我直言,最好将它们分组,例如
var Paths = {
ROOT: '',
PICTURES: '../pictures/',
TEXT: '../text/',
FAVICON: '../images/logo_small.ico',
IMAGES: '../images/',
GATEWAY: 'class.ControlEntry.php'
};
var TimeCounts = {
SECOND: 1000,
MINUTE: 60,
HOUR: 3600,
DAY: 43200
};
var KeyCodes = {
ENTER_KEY: 13
};
因为当你使用它时会更加冗长(当然我明白这只是示例代码,但我想向你展示我的想法)。