2014-09-05 71 views
-2

我有类似下面的代码的对象。我想从低级对象(子对象 - 内部对象)访问顶级(父)变量。 例如,在文件夹结构中,如果我们想要转到父文件夹,就像../。同样,如何从子对象访问父对象属性。如何从java脚本中的低级对象访问顶级对象属性

var a = { 
    b: { 
     c: 5, 
     h: { 
      d: {     
       e: function(){ 
       alert(c); 
       } 
      } 
     } 
    } 
}; 

在上面的示例代码中,我想从'd'访问属性'c'。

+0

你有什么尝试? – 2014-09-05 11:48:53

+0

相同的代码是我试过 – Jegan 2014-09-05 11:50:36

+0

据我所知JS中没有这种捷径。对象只是关键值对。 – 2014-09-05 12:38:45

回答

2

在JavaScript中没有向上的关系,所以没有一个简单的方法来做到这一点。

举个例子来说,这样的:

var a = {}; 
var b = {}; 
var c = {}; 

a.c = c; 
b.c = c; 

现在你有c,并希望得到它的父。你会得到什么?有两个父母。

这是怎么回事?

c.c = c; 

现在c是它自己的父母。

最接近你可以来搜索树,找到匹配的对象并编写自己的逻辑(这可能会根据你的具体情况自定义)来确定要返回哪些值。它可能需要保留一个已经搜索过的对象列表,所以你不会以无限递归结束。

0

如果我理解正确的话,你可以试试这个(小提琴:http://jsfiddle.net/8twvpo58/

在你指的是当然的绝对位置的话,但我不知道其他选项的

var a = { 
     b: { 
      c: 5, 
      h: { 
       d: {     
        e: function(){ 
        alert(a.b.c); 
        } 
       } 
      } 
     } 
    }; 



a.b.h.d.e();