Я создал this jsfiddle, чтобы показать проблему, с которой сталкиваюсь.
Предлагаю взглянуть на него, прежде чем читать.типы наследования в классах цепочки
Хорошо, теперь мы готовы.
Как вы видели, существует целая цепочка наследования: LeafDevice
->EndDevice
->SubNetDevice
->NetDevice
->Device
. Когда я создаю новый LeafDevice
, цепочка выполняется (т.е. выполняется в правильном порядке), но устанавливаются только атрибуты от LeafDevice
и EndDevice
(посмотрите на консоль).
Когда я запускаю метод обновления, он, кажется, перескакивает на класс каждые 2 ... Я имею в виду, вы видите на выходе, что javascript, кажется, не запускает методы EndDevice.update()
10 и NetDevice.update()
... Только атрибуты от , SubNetDevice
и LeafDevice
обновлены/добавлены (опять же, посмотрите на консоль) ...
Это сводит меня с ума, так как я не могу понять, что я делаю неправильно!
Что я пытаюсь сделать, это создать экземпляр LeafDevice
объекта, который следует по цепочке наследования я определен так, что в конце она имеет все определенные атрибуты (myDeviceAttr
, myNetDeviceAttr
, mySubNetDeviceAttr
, myEndDeviceAttr
, myLeafDeviceAttr
).
Можете ли вы дать некоторые идеи о том, что здесь происходит, пожалуйста?
Спасибо вам большое!
Я думаю, что сценарий не очень хорош, так как в моих тестах он не позволяет использовать методы с одним или несколькими параметрами. Если у вас есть доказательства обратного, пожалуйста, покажите рабочий пример, и я буду использовать его. В любом случае, я был бы рад не использовать этот сценарий и использовать естественное поведение javascript (я знаю, что это можно сделать)! Я не собираюсь принимать этот ответ, потому что он не ясно показывает, как решить проблему (пока вы не разработаете немного, извините) – andreapier
@andreapier Я исправил ваш скрипт на скрипке, взгляните на него. Я не понимаю, что вы действительно пытаетесь сделать. На ваш вопрос не хватает правильного объяснения. Вчера я ответил: «Это сводит меня с ума, так как я не могу понять, что я делаю неправильно». Теперь я обновил ваш скрипт для работы, как вы ожидали. – Tamil
Ну, теперь метод обновления работает так, как ожидалось, но конструктор этого не делает. Если вы посмотрите глубже, вы увидите, что объект LeafDevice имеет только myEndDeviceAttr и myLeafDeviceAttr ... у него нет mySubNetDeviceAttr, myNetDeviceAttr и myDeviceAttr. @Tamil – andreapier