如何访问javascript对象的父对象
我有一个幻灯片课程,看起来像这样:如何访问javascript对象的父对象,javascript,class,oop,object,Javascript,Class,Oop,Object,我有一个幻灯片课程,看起来像这样: //Our slideshow class function Slideshow(moduleId) { this.moduleId = moduleId; this.activeSlide = null; this.slides = new Array(); this.newRound(); } 我实例化它,告诉它它在哪个模块上,就像这样 self.modules[moduleId].slideshow = new Slidesh
//Our slideshow class
function Slideshow(moduleId) {
this.moduleId = moduleId;
this.activeSlide = null;
this.slides = new Array();
this.newRound();
}
我实例化它,告诉它它在哪个模块上,就像这样
self.modules[moduleId].slideshow = new Slideshow(moduleId);
现在,正如您所看到的,它已经“挂载”在一个由moduleId命名的模块上,所以我的问题是:这个对象(Slideshow的实例)知道它的父对象吗
我可以通过执行以下操作找到moduleId吗
parent.name
这样得到moduleId?否。因为JavaScript通过引用传递对象,所以同一个
Slideshow
对象实际上可以同时被多个“父”对象引用。好的,所以Slideshow真正知道在我的情况下它“挂载”了什么“节点”或“moduleId”的唯一方法是执行我所做的操作系统?对。如果要在幻灯片对象中保留对另一个对象的引用,可以在构造函数中传递对该对象的引用(无论该对象是否为“父对象”)。来自StackOverflow上的类似问题:“另一个对象(父对象)中的嵌套对象(子对象)无法直接从其父对象获取数据。”()。一个选项是将Slideshow对象作为参数传递给模块的构造函数,该构造函数可以在Slideshow上设置“parent”属性。超级,这完全解决了我的问题,我将在构造函数中传递对父对象的引用。非常感谢!我想我仍然需要像在构造函数中一样传递moduleId,但无论如何,这是个好消息。