1

我知道我可以在 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'
  },

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

4

3 回答 3

3

你可以这样做。

RequestDate: {
    [App.Back]: 'previous_activity_date',
    [App.Forward]: 'next_activity_date'
  }
于 2016-01-26T14:34:25.037 回答
2

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

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

11.1.5 对象初始化器

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

于 2012-06-14T08:46:25.580 回答
1

如您所见,您可以这样写:

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

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

于 2012-06-14T08:42:06.760 回答