在javascript中访问父对象

时间:2014-12-30 09:44:33

标签: javascript

我在javascript中有以下代码:

var x = {
    a:1,
    b : {
        c : 2,
        d : //i want value of x.a in here  
    }
}

我已经读过像这样访问父属性根本不可能。有没有解决方法呢?

5 个答案:

答案 0 :(得分:2)

不,没有。与任何其他语言一样,嵌套对象也无法访问其主机。

您必须自己明确设置。

答案 1 :(得分:0)

javascript对象没有parent,因为您可以共享。例如:

var a = { x: 42 };
var b = { y: a };
var c = { z: a };

这里对象a是"共享"作为bc之间的子对象,那么" parent"应该是什么?还是a?您可以看到共享,因为在执行b.y.x = 99后,c.z.x也会显示为99。可以使用不同的路径访问单个javascript对象。

另一方面,DOM对象有一个父对象,因为DOM是tree structure,所以谈论"""节点的父节点。

如果您将DOM节点添加为另一个节点的子节点,并且该节点已经是DOM的一部分,则它将从其所在位置移除,并将其置于新位置。

答案 2 :(得分:0)

不,这是不可能的,但您的案例可以写成:

var x = new function(){
   this.a = 1;
   this.b = {
      c: 2,
      d: this.a
   }
};

答案 3 :(得分:0)

试试这个:

var x = {
          a: {
               c: 1
          },
          b: {
               c: 2  
          }
}

x['b']['d'] = x['a'];

应该有效;)

答案 4 :(得分:0)

javascript中不存在父引用。你可以做的是构建一个辅助递归函数,它将解析你的所有对象并添加对父对象的引用。这将构建一个更复杂的对象。

以下视频介绍了如何:http://blog.wax-o.com/2014/01/how-to-find-deep-and-get-parent-in-javascript-nested-objects-with-recursive-functions-and-the-reference-concept-level-beginner/