2015-04-12 33 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

相关问题