在初始化时引用其自身属性的对象

rle*_*mon 15 javascript object

可能重复:
对象文字/初始值设定项中的自引用

可以这样做吗? (显然不在这个语法中)

var a = {
    b : 10,
    c : this.b * 2 // returns 'undefined'
};
Run Code Online (Sandbox Code Playgroud)

我也试过了

var a = {
    b : 10,
    c : a.b * 2 // throws error 'a is undefined'
};
Run Code Online (Sandbox Code Playgroud)

var a = {
    b : 10,
    c : b * 2 // throws error 'b is undefined'
};
Run Code Online (Sandbox Code Playgroud)

我觉得这些值是未定义的,我还没有完成它们的定义.然而,在我看来,似乎会有一个解决方案来构建像这样的对象并且c有条件b

Sky*_*son 12

或者,您可以使用自启动功能为您提供与您要查找的内容类似的效果:

var a = (function() {
    var b = 10;
    return {
        b:b,
        c:b*2
    }
})();

console.log(a.c);
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢那个,好像几乎*hacky* (3认同)