我有一个对象包含我的一些程序常量,以便我可以在所有源代码文件中使用它。常量对象是这样的:
CONSTANTS = {
THING_TYPE: 'type',
THING_INFORMATION: 'information',
THING_DESCRIPTION: 'description',
THING_NAME: 'name',
manyOtherConstants
}
我想用类似的符号创建对象,并使用常量的值作为对象的属性;这就是我想要做的事情:
var myObject = {
CONSTANTS.THING_TYPE: 'whateverType',
CONSTANTS.THING_INFORMATION: {
CONSTANTS.THING_DESCRIPTION: 'whateverDescription',
CONSTANTS.THING_NAME: 'whateverName',
}
}
问题在于我不能以这种方式使用常量。 Javascript说:
'SyntaxError: missing : after property id'
有没有办法用我的符号做我想做的事情?或者我唯一能做的就是以下几点?
var myObject = {}
myObject[CONSTANTS.THING_TYPE] = 'whateverType';
myObject[CONSTANTS.THING_INFORMATION] = {};
myObject[CONSTANTS.THING_INFORMATION][CONSTANTS.THING_DESCRIPTION] = 'whateverDescription';
myObject[CONSTANTS.THING_INFORMATION][CONSTANTS.THING_NAME] = 'whateverName';
答案 0 :(得分:1)
不,你不能使用对象文字初始化语法来做到这一点。
所以唯一的方法是使用你在第二种情况下所做的事情 - 使用[...]
notatin。