如何解决在JavaScript中实现枚举的最佳方法是哪一种?
我正在考虑一种在JavaScript中实现类似于枚举的结构的好方法。我想出了一些解决方案,但是哪个是最适合使用的?
静态吸气剂类:
flowers = Flower.select(:tree_id)
fruits = Fruit.select(:tree_id)
Tree.where(id: flowers).or(Tree.where(id: fruits))
可以像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);
一样使用。
我想知道其中一种方法在性能和内存使用方面是否更好?
解决方法
您可以按以下方式使用:
const Colors = Object.freeze({
A: 0,B: 1,C: 2
});
,
我测试了这两种方法,实现Enum的类方法确实是最糟糕的。 因此,我将坚持冻结对象。
类方法表现更好的唯一情况是在代码中的许多不同位置(在不同的模块中使用枚举)... p
但是感谢大家的回答。
,您可以使用TypeScript:
enum MyEnum {
A = 0,B = 1,C = 2
}
但是,如果您需要普通JS,下面是TS编译器编译的代码:
var MyEnum;
(function (MyEnum) {
MyEnum[MyEnum["A"] = 0] = "A";
MyEnum[MyEnum["B"] = 1] = "B";
MyEnum[MyEnum["C"] = 2] = "C";
})(MyEnum || (MyEnum = {}));
希望,这会有所帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。