我在Stackoverflow上看到了类似于我的问题,但是大多数人只提供了各种各样的工作,我不是在寻找。
我希望我的JSON中的属性能够引用同一对象中的前一个属性:
var x = {
a : 1,
b : a + 1
};
我已尝试b : this.a + 1
,但这不起作用。
为什么我不能用“a”来定义“b”?同样,我不是在寻找变通方法,只是洞察和理解。
由于
答案 0 :(得分:3)
你做不到。创建对象时,它和它的属性在语句完成之后才会存在。您无法在创建时引用对象或其属性。
你可以这样做:
var x = {a: 1};
x.b = x.a + 1;
P.S。那是不是 JSON。这是一个JavaScript对象。 JSON是数据的字符串表示,恰好与JavaScript语法非常相似。 var x = {a: 1}
是一个对象,'{"a": 1}'
(一个字符串)是JSON。
答案 1 :(得分:0)
this
是全局对象,因此在您的示例中,它没有a
属性。
您可以在浏览器控制台中看到一个简单示例
var object = { test: this };
console.log(object);
您会认为object
是Window
对象。