【发布时间】:2012-02-26 19:43:17
【问题描述】:
可能重复:
Passing in dynamic key:value pairs to an object literal?
Javascript Object Literal referring to another property in itself from another property
var var1 = {};
var1.number = 20;
var1.numberplus3 = var1.number + 3;
console.log(var1.numberplus3);
var var2 = {
number: 20,
numberplus3: number + 3
};
console.log(var2);
在此示例中,var1.numberplus3 的计算结果为 23,但 var2.numberplus3 的计算结果为“未定义”。这是为什么呢?
(我在 Codecademy 使用 JS 解释器:http://labs.codecademy.com/#:workspace)
谢谢!
【问题讨论】:
-
@Tomasz:这有点不同......在这种情况下,它是另一个对象的属性。 编辑: 哦,我错了……应该看过标题……代码让我感到困惑,抱歉。
-
@kinakuta:
var2.number和this.number都不起作用。var2不起作用,因为在那一刻,var2尚未定义。this将指代代码运行位置的上下文(很可能是windwow),但 100% 不是var2。 -
糟糕。是的,我的意思是写 numberplus3 = var2.number + 3!这就是我实际上试图运行的!
标签: javascript object properties literals notation