Сообщение от kefi
|
что в корне отлично от статического ООП
|
Да, в этом основная суть (и даже "прототип vs. класс" не столь существенно, как "статика vs. динамика"). Метапрограммирование с возможностью модификации кода в рантайме с "мутирующими" объектами - позволяют создавать системы гибче, нежели при статической организации.
К примеру, в Ruby on Rails (web-фрейморк на Ruby) при создании модели таблицы БД, у объекта-модели появляются (наряду с основным методом .find()) в рантайме методы find_by_имя_колонки: например, find_by_name, find_by_surename и т.д. - динамически расширяется класс модели методами, чьи имена построены по именам колонок в таблице.
Все js-фреймворки, которые добавляют всякие методы в прототипы HTMLElement'a и т.д. (например $('#some-id').show() - и все инстансы HTMLElement "чудесным образом" имеют метод .show).
P.S.: динамическое изменение кода называется на жаргоне "Monkey Patch"