[英]Which is the best way to implement enums in JavaScript?
我正在考虑一种在 JavaScript 中实现类枚举结构的好方法。 我想出了一些解决方案,但哪一个最好用?
静态吸气剂类:
class Enum {
static get A() {
return 0;
}
static get B() {
return 1;
}
static get C() {
return 2;
}
}
这可以像var a = Enum.A // a == 0
。
我在网上找到了一个使用对象冻结它的解决方案:
const enum = {
A: 0,
B: 1,
C: 2
}
Object.freeze(enum);
这可以像var b = enum.B // b = 1
。
我想知道其中一种方法在性能和内存使用方面是否更好?
您可以使用如下:
const Colors = Object.freeze({
A: 0,
B: 1,
C: 2
});
我测试了这两种方法,实现 Enum 的类方法确实是最糟糕的。 所以我会坚持冻结一个对象。
类方法表现更好的唯一情况是在代码中的许多不同位置使用枚举(在不同的模块中...)
不过谢谢大家的回答。
您可以使用打字稿:
enum MyEnum {
A = 0,
B = 1,
C = 2
}
但是如果你需要 vanilla JS,这里是 TS Compiler 编译的代码:
var MyEnum;
(function (MyEnum) {
MyEnum[MyEnum["A"] = 0] = "A";
MyEnum[MyEnum["B"] = 1] = "B";
MyEnum[MyEnum["C"] = 2] = "C";
})(MyEnum || (MyEnum = {}));
希望,这会有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.