JavaScript 常量和对象文字



我知道我可以在JavaScript中做到这一点:

RequestDate: {
    '0' : 'previous_activity_date',
    '1': 'next_activity_date'
  }

我可以这样做:

this.RequestDate = {};
this.RequestDate[App.FORWARD] = 'next_activity_date';
this.RequestDate[App.BACK] = 'previous_activity_date';

有没有办法使以下工作:

RequestDate: {
    App.Back : 'previous_activity_date',
    App.Forward: 'next_activity_date'
  },

以上明显错误,有没有办法让它工作?

你可以这样做。

RequestDate: {
    [App.Back]: 'previous_activity_date',
    [App.Forward]: 'next_activity_date'
  }

简短回答:否。对象文本中只能有文本键。如果要使用常量,您自己的解决方案是最好的解决方案。

http://bclary.com/2004/11/07/

11.1.5 对象初始化器

对象

初始化器是描述对象初始化的表达式,以类似于文字的形式编写。它是零对或多对属性名称和关联值的列表,括在大括号中。这些值不必是文字;每次计算对象初始化器时都会评估它们。

正如你所注意到的,你可以这样写:

RequestDate = {};
RequestDate[App.Back] = 'previous_activity_date';
RequestDate[App.Forward] = 'next_activity_date';

但是javascript语法不允许在JSON表示法的:之前使用表达式。

最新更新