如何在javascript中包含枚举类型名称中的点字符?

时间:2009-12-30 10:21:51

标签: javascript enums naming

我正在使用javascript并进行此枚举:

filterType = { Campaign : 'Campaign', Class : 'Class', Date : 'Date', 
               DateGeq : 'DateGeq', DateLeq : 'DateLeq', 
               DateRange : 'DateRange', Status : 'Status' }

我想将其命名为:

Filter.filterType = { Campaign : 'Campaign', Class : 'Class', Date : 'Date', 
                      DateGeq : 'DateGeq', DateLeq : 'DateLeq', 
                      DateRange : 'DateRange', Status : 'Status' }

翻译不喜欢点字符。

我可以在枚举名称中添加点字符???

感谢!!!

4 个答案:

答案 0 :(得分:5)

您可能收到错误,因为您尝试为名为filterType的类的Filter成员分配值,但Filter未定义。如果您先定义Filter,它就会起作用。

var Filter = {};

要在一行中完成所有操作,您可以写下:

var Filter = { filterType: { ... } };

答案 1 :(得分:2)

我猜你有“过滤器”未定义。

var Filter ={};
Filter.filterType = {....}

答案 2 :(得分:1)

这样做怎么样?

Filter={}

Filter.filterType = { Campaign : 'Campaign', Class : 'Class', Date : 'Date', 
                      DateGeq : 'DateGeq', DateLeq : 'DateLeq', 
                      DateRange : 'DateRange', Status : 'Status' }

答案 3 :(得分:0)

JavaScript中没有枚举。您在此处显示的是一个对象,更具体地说,是使用object literal构造的JSON notation

您的第二个示例是尝试在名为filterType的对象上创建Filter属性(顺便说一下,这是一个冗余名称)。如果Filter不存在,则会导致错误(认为它类似于null.filterType,这显然没有任何意义)。您必须先定义Filter

要在一个表达式中定义FilterFilter.filterType,您可以使用以下表示法:

var Filter = {
    filterType: {
        Campaign : 'Campaign', Class : 'Class', Date : 'Date', 
        DateGeq : 'DateGeq', DateLeq : 'DateLeq', 
        DateRange : 'DateRange', Status : 'Status'
    }
};