我知道我可以在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表示法的:之前使用表达式。