簡體   English   中英

在 JavaScript 中實現枚舉的最佳方法是什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM