在javascript中访问父对象
我有以下javascript代码:在javascript中访问父对象,javascript,Javascript,我有以下javascript代码: var x = { a:1, b : { c : 2, d : //i want value of x.a in here } } 我读过这样访问父属性是完全不可能的。有什么解决办法吗?没有。嵌套对象也不能像在任何其他语言中那样访问其主机 您必须自己显式设置。javascript对象没有父对象,因为您可以进行共享。例如: var a = { x: 42 }; var b = { y: a }; va
var x = {
a:1,
b : {
c : 2,
d : //i want value of x.a in here
}
}
我读过这样访问父属性是完全不可能的。有什么解决办法吗?没有。嵌套对象也不能像在任何其他语言中那样访问其主机
您必须自己显式设置。javascript对象没有父对象,因为您可以进行共享。例如:
var a = { x: 42 };
var b = { y: a };
var c = { z: a };
这里,对象a
在b
和c
之间作为子对象“共享”,那么“父对象”或a
应该是什么?您可以看到共享,因为在执行b.y.x=99
之后,c.z.x
也将显示为99
。可以使用不同的路径访问单个javascript对象
另一方面,DOM对象有一个父对象,因为DOM是一个节点,所以谈论节点的“父对象”是有意义的
如果您将一个DOM节点作为另一个节点的子节点添加,并且该节点已经是DOM的一部分,则该节点将从其所在位置删除,并将其放置在新位置。不可能,但您的案例可以这样写:
var x = new function(){
this.a = 1;
this.b = {
c: 2,
d: this.a
}
};
试试这个:
var x = {
a: {
c: 1
},
b: {
c: 2
}
}
x['b']['d'] = x['a'];
应该有效;) javascript中不存在父引用。您可以做的是构建一个helper递归函数,该函数将解析所有对象并添加对父对象的引用。这将构建一个更复杂的对象
下面的视频演示了如何:嵌套对象可能是多个其他对象的一部分,因此没有单一父对象。您可能希望使用类似于:或类似于:这不一样。检查控制台是否存在以下情况:
x.a=5;控制台日志(x.b)
@abhitalks当然不会改变,因为a
存储原语类型