可以这样做吗? (显然不在此语法中)
var a = {
b : 10,
c : this.b * 2 // returns 'undefined'
};
我也试过
var a = {
b : 10,
c : a.b * 2 // throws error 'a is undefined'
};
和
var a = {
b : 10,
c : b * 2 // throws error 'b is undefined'
};
我觉得这些值是未定义的,我还没有完成它们的定义。然而,在我看来,似乎会有一个解决方案来构建这样的对象并让c
以b
为条件
答案 0 :(得分:12)
或者,您可以使用自启动功能为您提供与您要查找的内容类似的效果:
var a = (function() {
var b = 10;
return {
b:b,
c:b*2
}
})();
console.log(a.c);
答案 1 :(得分:1)
不使用对象文字符号,但您可以使用函数创建它:
function Structure(value) {
this.b = value;
this.c = 2 * value;
}
var a = new Structure(10);
或
function makeStructure(value) {
return {b:value, c:2*value};
}
var a = makeStructure(10);