我在javascript中有以下代码:
var x = {
a:1,
b : {
c : 2,
d : //i want value of x.a in here
}
}
我已经读过像这样访问父属性根本不可能。有没有解决方法呢?
答案 0 :(得分:2)
不,没有。与任何其他语言一样,嵌套对象也无法访问其主机。
您必须自己明确设置。
答案 1 :(得分:0)
javascript对象没有parent
,因为您可以共享。例如:
var a = { x: 42 };
var b = { y: a };
var c = { z: a };
这里对象a
是"共享"作为b
和c
之间的子对象,那么" 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中不存在父引用。你可以做的是构建一个辅助递归函数,它将解析你的所有对象并添加对父对象的引用。这将构建一个更复杂的对象。