我創建了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