JavaScript引擎如何创建变量?

时间:2014-10-12 09:54:31

标签: javascript

考虑:

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

1 个答案:

答案 0 :(得分:1)

在此声明中:

var s1 = {
    a: 1,
    b: s1.a    
};  

s1在数据声明结束之前尚未定义,因此无法在数据声明内部引用它。这就是Javascript的工作原理。

你可以这样做:

var s1 = { a: 1 };  
s1.b = s1.a;