| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
moko 22.10 02:46 / 23.10 05:44
Если сделать например как ниже, то будет выведено "a method", поскольку если метод в потомке не переопределен, вызывается метод родителя. BASE же заменяется на имя класса во время компиляции.@main[] ^b:method2[] @CLASS TextMixin @method1[] $result[result] @method2[] ^method[] @CLASS a @method[] a method @CLASS b @BASE a @auto[] ^reflection:mixin[$TextMixin:CLASS;$.methods(true)]Если это реально поможет, можно сделать, чтобы ^reflection:base[] без параметров возвращал актуального родителя. Но и сейчас можно без этого обойтись, просто чуть более громоздко.
@main[] ^b:method[] @CLASS TextMixin @method1[] $result[result] @method[] $base[^reflection:base[$self]] ^base.method[] @CLASS a @method[] a method @CLASS b @BASE a @auto[] ^reflection:mixin[$TextMixin:CLASS;$.methods(true) $.overwrite(true) ]