Странно

Довольно странно, изучая исходники пакета flash , класса boot столкнулся с интересной особенностью.в классе boot есть определение функции

        public static function __instanceof( v : Dynamic, t : Dynamic ) {
                try {
                        if( t == Dynamic )
                                return true;
                        return untyped __is__(v,t);
                } catch( e : Dynamic ) {
                }
                return false;
        }

Но, при вызове не срабатывает - flash.Boot.__instanceof(obj1,typedef1);
Как будто такого метода нет. Но все же он существует. Читал статью про магические последовательности, знаю, что это - магическая последовательность и только через untyped пройдет, но, функция то public, а не private. Не понимаю. Может кто-то подскажет каким образом она ограничена от пользовательского доступа ? Было бы лчень полезной фичой. Доступ даёт только через untyped.

Комментарии

Спасибо

За инфу пасиб, не заметил этой тонкости, но, все же вопрос остался открытым, почему именно так ? Почему через untyped только идет, а так вне области видимости?

Вероятней всего

Вероятней всего, компилятор заранее не знает тип, возвращаемый функцией, потому и не даёт доступа к этому методу, на это же указывает и untyped. Очень порадовало, что класс boot можно дописывать под себя.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".