[英]JavaScript - Get nested property's parent object
假设我有一个这样的嵌套对象:
let object = {
another : {
yet_another : {
last_one : {
some_property : [1,2,3]
}
}
}
}
我可以像这样访问some_property
:
object.another.yet_another.last_one.some_property;
假设我指的是变量中的这个对象:
var x = object.another.yet_another.last_one.some_property;
如果我只能访问x
变量,我怎么知道some_property
的父对象是什么? 在 JavaScript 中甚至可能吗?
不,这不可能。 对象本身没有“父对象”。 观察:
let object = {
another : {
yet_another : {
last_one : {
some_property : [1,2,3]
}
}
}
};
let another_object = {
foo: object.another.yet_another.last_one.some_property
};
怎么办? 该数组现在同样是两个对象的成员。
不,因为在执行以下行时;
var x = object.another.yet_another.last_one.some_property;
然后将x
分配给some_property
的值, some_property
而已。
根据您对答案的评论,您的(实际)问题的解决方案应该是不要移动物体。 在维护应用程序时,可变性可能非常昂贵(最终令人望而却步)。
只需创建新对象:
const firstObject = {
prop1: 'some value',
prop2: {
prop3: 'some value',
prop4: [1,2,3,4]
}
}
// don't do
const secondObject = { }
secondObject.prop2.prop4 = firstObject.prop2.prop4
// instead do
const secondObject = { ... }
const newObject = {
...secondObject,
prop2: {
...secondObject.prop2,
prop4: firstObject.prop2.prop4
}
}
您可能想研究一下 immutablejs。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.