Это может быть очень полезно
trace( arguments.callee.name );
Это может быть очень полезно для отладки. Нахождение прототипа класса изнутри активированного объекта тоже не представляет трудности - arguments.callee.prototype. Arguments.callee также показывает метод, которым можно найти имя его метода, опять-таки простым использованием arguments.callee. Это не так полезно, поскольку свойства у методов обычно не прикрепляются ни к объекту с именем метода, ни к объекту прототипа, поэтому ссылки на эти объекты обычно не требуется. Кроме того, не существует надежного способа, которым метод находил бы объект с именем класса, к которому он принадлежит (за исключением прописывания ссылки вручную), что значительно ограничивает полезность применения arguments.callee в конструкторе. (Получить имя класса метода изнутри метода можно с использованием this.__proto__.constructor.x или, если наследование имеет два уровня глубины, с использованием this.__proto__.__proto__.constructor.x, но при этом у вас нет возможности убедиться в том, сколько уровней глубины имеет ваш метод.)
Ниже приводится пример кода для экспериментирования. Вероятно, callee покажется вам наиболее полезной при проверке структур и отладке.
Class = function() { // найти класс из конструктора trace( "Class: " + arguments.callee.x ); // Вывод: Class: объект с именем класса
// найти прототип класса из конструктора trace( "Class.prototype: " + arguments.callee.prototype.x); // Вывод: Class.prototype: прототип класса }
Class.x = "Class name object"; Class.prototype.x = "Class prototype";
Class.prototype.method = function() { // найти имя метода из внутреннего метода trace("method: " + arguments.callee.x); // Вывод: method: объект с именем метода
// найти статические свойства класса из метода trace("method: " + this.__proto__.constructor.x); // (работает, только если класс на один уровень выше экземпляра) } Class.prototype.method.x = "method name Object";
aa = new Class(); // Конструктор теста aa.method(); // Метод теста
<<
ООП во Flash 5 >>
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий