如何在 JavaScript 中使用可枚举

Posted

技术标签:

【中文标题】如何在 JavaScript 中使用可枚举【英文标题】:How to use enumerable with javascript 【发布时间】:2020-10-18 23:35:12 【问题描述】:

我的 Ignicoes 类中有一个名为“Estado”的属性,该属性是可枚举类型。我的问题是,我将如何在 javascript 中引用它? 这是我的模型:

public enum Estado

    Aceite,
    emAvaliacao,
    Recusado

public class Ocorrencias

   public Estado Estado  get; set; 

这是我要使用的索引上的函数:

    function getData(id) 
    $.get(`/api/IgnicoesAPI/$id`, function (data) 

        //o div terá que ser limpo para que a informação não seja subreposta
        document.getElementById("myDiv").innerhtml = "";
        document.getElementById("buttons").innerHTML = "";
        document.getElementById("header").innerHTML = "";
        document.getElementById("content").innerHTML = "";

    
        //adição dos botões que alteram o estado da ignição
        var desativo = "#808080";
        //HERE IS WHERE I DON'T KNOW HOW TO ACCESS THE ENUMERABLE
        
            if (data.estado == "aceite") 

          //CODE
        
        else 

         //CODE
           
            
        
    );

【问题讨论】:

【参考方案1】:

目前在 Vanilla Javascript 中没有使用 enumpublic 关键字。

Source

官方 Ecma 网站 11.6.2 中的注释 2 说:

enum 当前未在本规范中用作关键字。这是一个未来的保留字,放在一边 在未来的语言扩展中用作关键字。 同样,implements、interface、package、private、protected 和 public 是 严格模式代码中的未来保留字。

您可以使用这样的解决方法:

var Estado = 
    "Aceite": 0,
    "emAvaliacao": 1,
    "Recusado": 2

并像这样使用它:

var firstEnumValue = Estado.Aceite;

【讨论】:

以上是关于如何在 JavaScript 中使用可枚举的主要内容,如果未能解决你的问题,请参考以下文章

在java中如何判断一个变量的类型

如何将 List<string> 分配给 JavaScript 数组或可枚举对象

如何让对象属性不可配置或枚举

[Effective JavaScript 笔记]第47条:绝不要在Object.prototype中增加可枚举的属性

对象属性的可枚举性

如何在 Spring-Boot 应用程序中使用 JavaScript 加入枚举