我创建了this jsfiddle来显示我面临的问题。
我建议在阅读之前先看看它。继承类别链
好吧,现在我们已经准备好了。
正如你所看到的,有一个类继承链:LeafDevice
- >EndDevice
- >SubNetDevice
- >NetDevice
- >Device
。 当我实例化一个新的LeafDevice
链完成(即它按正确的顺序执行),但仅设置了LeafDevice
和EndDevice
的属性(查看控制台)。
当我运行的更新方法似乎跳级,每2 ...我的意思是,你的JavaScript似乎并没有运行EndDevice.update()
和NetDevice.update()
方法的输出看到...从Device
,SubNetDevice
和属性唯一LeafDevice
更新/添加(再次,看看控制台)...
这让我疯狂,因为我无法弄清楚我做错了什么!
我想要做的就是实例下面我定义继承链中的一个LeafDevice
对象,以便在年底它拥有所有定义的属性(myDeviceAttr
,myNetDeviceAttr
,mySubNetDeviceAttr
,myEndDeviceAttr
,myLeafDeviceAttr
)。
你可以提出一些关于这里发生了什么的想法吗?
非常感谢你!
我认为脚本不是很好,因为在我的测试中,它不能使用具有一个或多个参数的方法。如果您有相反的证据,请展示一个实例,我将使用它。无论如何,我会很高兴不使用这种脚本,并使用JavaScript的自然环境行为(我知道它可以制作)!我不打算接受这个答案,因为它没有清楚地表明如何解决问题(直到你详细阐述了一下,对不起) – andreapier 2012-04-12 20:25:02
@andreapier我已经在小提琴中修正了你的脚本,看看它。我没有得到你真正想做的事情。你的问题缺乏正确的解释。昨天我回答说:“这让我疯狂,因为我无法弄清楚我做错了什么”现在我已经更新了脚本,按照预期工作 – Tamil 2012-04-13 07:12:56
好吧,现在更新方法按预期工作,但构造函数不会。 。如果你看得更深,你可以看到LeafDevice对象只有myEndDeviceAttr和myLeafDeviceAttr ...它没有mySubNetDeviceAttr,myNetDeviceAttr和myDeviceAttr。 @Tamil – andreapier 2012-04-13 07:38:44