2015-04-12 62 views
0

規定水平的我有以下結構的JSON對象:如何引用一個JSON對象

obj = { 
    foo: 'bar', 
    data: { 
     hello: this.foo 
    } 
} 

然而,this在2級始終是Window對象。我如何正確引用foo

注意

我知道我可以把對象變成了「類」,並與self什麼參考進行財產。這不適合我。該對象必須是獨立的JSON對象。

+0

* this *在執行上下文中的值由調用設置。你如何試圖訪問該物業?我猜「JSON對象」實際上是指[* Object initialiser *](http://ecma-international.org/ecma-262/5.1/#sec-11.1.5)或文字。 – RobG

+0

如果'obj = {foo:'bar',data:{}}; obj.data.hello = obj.foo;'不是一個選項,我不知道有什麼方法可以在對象聲明中做到這一點。 – some

+0

只是要提到,你提供的結構是一個標準的JavaScript對象...第二個這取決於上下文...因爲它在主要上下文中始終是窗口 – Reflective

回答

0

而不是this.foo,請使用obj.foo。 Javascript幾乎總是認爲this是全球/窗口。如果這不起作用,我會建議創建另一個變量。

祝你好運!

+0

我得到一個錯誤,告訴我'obj'是未定義的。我想這是有道理的,因爲OBJ尚未定義? – dopatraman

+0

obj仍然不存在,所以這將導致錯誤 – Reflective

+0

不是「窗口/文檔」,而是* global/window *對象。 ;-) – RobG

相關問題