PDA

Просмотр полной версии : Добавить метод к стандартному классу


Idalgo
17.04.2007, 15:28
Как добавить метод к стандартному классу Date или Math?
Date.prototype.MethodName = function()... - не проходит :(
(Flash 8.0)

etc
17.04.2007, 15:37
Date.prototype.myMethod = function() {
trace('aa');
}
a = new Date();
a.myMethod(); // aa
Хак:
Math['myMethod'] = function() {
trace('aa');
}
Math['myMethod'](); // aa

Работает. Только зачем вам менять стандартные классы?

Idalgo
17.04.2007, 18:27
За добавление метода к Date - спасибо
Странно, что у меня не вышло.

Насчет Math, красивее не выйдет?

А как насчет Number, String ? Так же как Math?

iNils
17.04.2007, 18:32
Смените в настройках публикации AS 2.0 на AS 1.0 и ругаться перестанет. Хотя абсолютно не понятно зачем вам добавлять к классам плеера свои собственные методы, вместо того чтобы создать свой класс расширяющий стандартные?

etc
17.04.2007, 22:02
Насчет Math, красивее не выйдет?
Под AS2 нет. Но это и не AS2, это хак. На мой взгляд, это глупость.

Idalgo
18.04.2007, 10:41
По поводу создания своего класса, расширяющего стаднартный.
Мне нужно например отформатировать дату, возвращаемую какой-либо функцией для вывода. Это нужно в разных местах и наиболее удобным было бы вызывать метод класса для каждого экземпляра этого класса. Или Вы предлагаете приводить тип Date к типу CustomDate и тогда уже вызывать метод format этого CustomDate?

etc
18.04.2007, 11:51
Предлагаем расширить CustomDate от Date.

vic_
18.04.2007, 11:52
Написать какой нибудь DateUtil со статичными методами, в котором и будет реализована эта операция полностью.