2014-01-18 131 views
0

我有一个幻灯片类看起来像这样的家长:如何访问JavaScript对象

//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的实例)是否意识到它的父对象?

我能知道通过执行类似

parent.name 

,并获得的moduleId这样的的moduleId?

回答

0

不可以。因为JavaScript通过引用传递对象,同一个Slideshow对象实际上可以同时由多个“父”对象引用。

+0

好吧,所以真正的幻灯片显示知道什么“节点”或“moduleId”在我的情况下操作系统“安装”的唯一方法是做我做的? –

+0

对。如果要维护对幻灯片对象中的另一个对象的引用,则可以在构造函数中传递对该对象的引用(不管它是否为“父级”)。 –

+0

来自StackOverflow上的类似问题:“另一个对象(父级)内的嵌套对象(子级)无法直接从其父级获取数据。” (http://stackoverflow.com/questions/2980763/javascript-objects-get-parent)。 一种选择是将幻灯片对象作为参数传递给模块的构造函数,该构造函数可以在幻灯片上设置“父”属性。 –