为什么JQuery没有巩固其常量?

时间:2012-01-10 22:19:14

标签: javascript jquery

我的所有常量都接近我的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
    }
};

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
};

因为当你使用它时会更加冗长(当然我明白这只是示例代码,但我想向你展示我的想法)。