gpt4 book ai didi

javascript - 嵌套 "const"JavaScript 值是否有命名约定?

转载 作者:行者123 更新时间:2023-11-28 08:35:16 25 4
gpt4 key购买 nike

我们如何或应该我们将Java或其他类似C的常量大小写约定传递给JavaScript?

在 Java 中,我们会用 ALL_UPPERCASE 命名“常量”(静态最终)成员。如果我们有一组想要作为常量的值,我们可以使用枚举成员,并且 we'd name the enum member with a HumpBack name ,但单独的枚举将是大写的,例如SomeClass.SomeEnum.SOME_VALUE .

假设我有一个用于某些《星际迷航》游戏的 JavaScript 库(选择一个愚蠢的例子),带有根命名空间对象 StarTrek 。我有一些常数值(不用介意 Js 没有常数),我想为外星物种、行星的属性构建一些常数值。如果不考虑 Java 约定,我会采用如下方法:

StarTrek.SPECIES = {
HUMAN: "HUMAN",
KLINGON: "KLINGON",
VULCAN: "VULCAN"
};

StarTrek.PLANET_ATTRIBUTE = {
CLASS: {
M: "M",
T: "T",
...
},
LIFE_FORMS: {
NONE: "NONE",
INTELLIGENT: "INTELLIGENT",
NO_INTELLIGENT: "NO_INTELLIGENT"
}
};

请注意,与 Java 不同,我们在 PLANET_ATTRIBUTES 中有一些类似于嵌套“枚举”的东西。 。我在这里使用大写的“枚举”名称,因为感觉就像 StarTrek. 下面的所有内容本质上应该是“常量”(与 Java 中的枚举实际上是一个类相比,因此得名 BumpyCase)。所以无论如何我可以通过使用 StarTrek.PLANET_ATTRIBUTE.LIFE_FORMS.NO_INTELLIGENT 来指定没有智能生命体的地方。

现在,按照 Java 的约定,我会采用类似以下的内容:

StarTrek.Species = {
HUMAN: "HUMAN",
KLINGON: "KLINGON",
VULCAN: "VULCAN"
};

StarTrek.PlanetAttribute = {
Class: {
M: "M",
T: "T",
...
},
LifeForms: {
NONE: "NONE",
INTELLIGENT: "INTELLIGENT",
UNINTELLIGENT: "UNINTELLIGENT"
}
};

在这种情况下,我会通过使用StarTrek.PlanetAttribute.LifeForms.NO_INTELLIGENT来指定没有智能生命体。 .

哪个更适合 JavaScript,为什么?有没有为此提出任何约定?

最佳答案

答案是:这真的不重要(根本)!

第二个约定看起来更好(第一个约定对你大喊大叫)并且也在 C# 中使用,但这取决于你!我认为对此没有任何限制。

但是关于 javascript 中的枚举值:也许这样会更好?您可以使用枚举作为标志。

StarTrek.Species = {
HUMAN: 1,
KLINGON: 2,
VULCAN: 4
}

编辑:

Jason也就是说,在javascript中没有任何常量的概念,所以这取决于你的选择。

关于javascript - 嵌套 "const"JavaScript 值是否有命名约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21316314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com