考虑:
var s1 = {
a: 1,
b: s1.a
};
alert(s1.b); // Uncaught TypeError: Cannot read property 'a' of undefined
任何人都可以了解JavaScript引擎的内部工作原理吗?
目前我被迫使用:
var s2 = {
a: {
a: 1
},
b: {
a: function () { return s2.a.a}
}
};
alert(s2.b.a()); // 1
答案 0 :(得分:1)
在此声明中:
var s1 = {
a: 1,
b: s1.a
};
s1
在数据声明结束之前尚未定义,因此无法在数据声明内部引用它。这就是Javascript的工作原理。
你可以这样做:
var s1 = { a: 1 };
s1.b = s1.a;