我正在努力做到以下几点:
var Colors = {
'BLUE ': 1,
'RED' : 2,
'YELLOW' : 3
};
var Boxes = {
Colors.BLUE : 5,
Colors.RED : 1,
Colors.YELLOW : 0
};
console.log(Boxes);
但是,我收到以下错误:
Uncaught SyntaxError: Unexpected token .
在定义Colors
时,如何引用Boxes
对象?
我想仅使用对象文字语法来完成此操作。感谢。
答案 0 :(得分:2)
您必须更详细并使用括号表示法来定义变量属性名称:
var Colors = {
'BLUE' : 1,
'RED' : 2,
'YELLOW' : 3
};
var Boxes = {};
Boxes[Colors.BLUE] = 5;
Boxes[Colors.RED] = 1;
Boxes[Colors.YELLOW] = 0;
console.log(Boxes);
在ES2015中,您可以使用表达式初始化对象键,这称为Computed property names:
var Boxes = {
[Colors.BLUE] : 5,
[Colors.RED] : 1,
[Colors.YELLOW] : 0
};
答案 1 :(得分:0)
您可以将Object定义为另一个Object的属性,例如:
var Colors = {
BLUE: 1,
RED: 2,
YELLOW : 3
};
var Boxes = {
Colors: Colors
}
console.log(Boxes);
或者您可以简单地将整个对象定义为:
var Boxes = {
Colors: {
BLUE: 1,
RED: 2,
YELLOW : 3
}
}
console.log(Boxes);
应该得到你需要的结果。