Не думаю, что я согласен с вашей предпосылкой, но главное преимущество наследования на основе прототипов состоит в том, что оно позволяет присваивать свойства и методы во время выполнения всем членам класса, даже когда уже есть экземпляры этого класса.
Теоретик во мне на самом деле недоволен некоторыми из этих последствий.Представьте, что вы отлаживаете что-то, где вы не представляете, какой фрагмент кода полностью изменил структуру вашего класса.Это за гранью ужаса.
Но я скажу, что это оказалось полезным:
Однажды, когда я работал в ActionScript 2 (не для слабонервных, поскольку это почтинедетерминированный язык) внутри контейнера ActionScript 3.Неизвестным побочным эффектом этой проблемы является то, что она устраняет представление об уровнях памяти (что является существенным для унаследованного кода моей компании).Мне удалось добавить строку: MovieClip.prototype._level0 = _root;
, и это решило проблему.
Чтобы противостоять моему аргументу, приведенному выше, тот факт, что вы можете изменять все экземпляры после того, как этот факт дает вам определенную силу вситуации, когда у вас нет доступа к исходной кодовой базе (как в примере), но я не вижу значительных преимуществ за этим.