JavaScript:我可以使用文字符号,使用属于同一对象的另一个属性来定义对象的属性吗?

JavaScript:我可以使用文字符号,使用属于同一对象的另一个属性来定义对象的属性吗?,javascript,object,properties,literals,notation,Javascript,Object,Properties,Literals,Notation,可能重复: 在本例中,var1.numberplus3计算结果为23,但var2.numberplus3计算结果为“未定义”。为什么会这样 (我正在Codecademy使用JS解释器:) 谢谢 你应该这样写: var var2 = { number: 20, numberplus3: function() { return var2.number + 3; } } 或: @托马斯兹:那有点不同。。。在这种情况下,它是另一个对象的属性。编辑:哦,我错了。。。应该读一下标题。。

可能重复:

在本例中,
var1.numberplus3
计算结果为23,但
var2.numberplus3
计算结果为“未定义”。为什么会这样

(我正在Codecademy使用JS解释器:)

谢谢

你应该这样写:

var var2 = {
    number: 20,
    numberplus3: function() { return var2.number + 3; }
}
或:


@托马斯兹:那有点不同。。。在这种情况下,它是另一个对象的属性。编辑:哦,我错了。。。应该读一下标题。。。代码把我弄糊涂了,对不起。@kinakuta:
var2.number
this.number
都不起作用
var2
不起作用,因为此时,
var2
尚未定义<代码>此将引用代码运行位置的上下文(很可能是
windwow
),但100%不是
var2
。Woops。是的,我想写numberplus3=var2.number+3!这就是我想跑的!啊哈,好吧……所以我必须让它成为一个函数来处理var2在设置numberplus3时没有定义的问题?这大概是因为numberplus3中的函数只有在设置了var2之后才被计算?@stanislavbremski你明白了,你试图引用一个在内存中无法访问的变量,看看编辑。太好了……我想我现在明白了。干杯
var var2 = {
    number: 20,
    numberplus3: function() { return var2.number + 3; }
}
var var2 = {
    number: 20
};
// at this point the var2 object is defined and accessible in the memory
var2.numberplus2 = var2.number+3;