Javascript 对象:获取父对象
2022-08-30 02:44:56
我有以下(嵌套)对象:
obj: { subObj: { foo: 'hello world' } };
接下来我要做的是像这样引用子对象:
var s = obj.subObj;
现在我想做的是从变量中获取对对象的引用。像这样:obj
s
var o = s.parent;
这在某种程度上是可能的吗?
我有以下(嵌套)对象:
obj: { subObj: { foo: 'hello world' } };
接下来我要做的是像这样引用子对象:
var s = obj.subObj;
现在我想做的是从变量中获取对对象的引用。像这样:obj
s
var o = s.parent;
这在某种程度上是可能的吗?
另一个对象(父对象)中的嵌套对象(子对象)无法直接从其父对象获取数据。
看看这个:
var main = {
name : "main object",
child : {
name : "child object"
}
};
如果你问主对象它的子名称是什么(),你会得到它。
相反,你不能反过来做,因为孩子不知道它的父母是谁。
(你可以得到,但你不会得到)。main.child.name
main.name
main.child.parent.name
顺便说一句,函数可能有助于解决此线索。
让我们扩展上面的代码:
var main = {
name : "main object",
child : {
name : "child object"
},
init : function() {
this.child.parent = this;
delete this.init;
return this;
}
}.init();
在函数内部,您可以简单地调用 父对象。
因此,我们直接在对象内部定义属性。
然后(可选)我们可以删除该方法。
最后,我们将主对象作为函数的输出返回。init
this
parent
child
init
init
如果你现在试图得到它,你会得到正确的。
这有点棘手,但它工作正常。main.child.parent.name
不。没有办法知道它来自哪个对象。
s
并且两者都只是对同一对象的引用。obj.subObj
你也可以做:
var obj = { subObj: {foo: 'hello world'} };
var obj2 = {};
obj2.subObj = obj.subObj;
var s = obj.subObj;
现在,您有三个对同一对象的引用 、 和 。它们都不是特别的。obj.subObj
obj2.subObj
s