|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Вызов конструктора с произвольным числом параметров...
Доброго времени суток.
есть такая задача, надо сделать функцию типа: Я ее реализовал так: function createInstance(_class:Class,args:Array):Object { switch(args.length) { case 0: return new _class(); case 1: return new _class(args[0]); case 2: return new _class(args[0],args[1]); case 3: return new _class(args[0],args[1],args[2]); case 4: return new _class(args[0],args[1],args[2],args[3]); case 5: return new _class(args[0],args[1],args[2],args[3],args[4]); //тут дописать еще много case-ов... default: return new _class(args[0],args[1],args[2],args[3],args[4]); } }
__________________
Искренне Ваш, Джек. |
|
|||||
Красивая запись. Цикл уберет тонну кейсов.
Добавлено через 2 минуты Очень странный метод. Почему не сразу создавать нужный класс с параметрами? Зачем эти кейсы? В AS3 нет перегрузки, конструктор стабильно будет принимать только определенное количество параметров. Или плюс один ...rest Добавлено через 5 минут Все.
__________________
тут я Последний раз редактировалось КорДум; 21.08.2011 в 14:35. |
|
|||||
На самом деле функция вырвана из контекста, это часть библиотеки аля Reflection.
Скажем так, есть класс Type, который должен реализовать метод createInstance(...args):Object Все что я знаю о типе, это его Class и результат работы функции describeType КорДум: Ваш вариант решения неприемлем. Как уже отметил nOobCrafter, rest - это тот же массив... Никаких требований к конструктору не должно быть... Ваш вариант будет работать только для конструкторов типа: contructor(args:Array)
__________________
Искренне Ваш, Джек. |
|
|||||
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
JackFromChaos, по-другому в этой ситуации не сделать. Вполне нормально со свитчем считаю.
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
Здесь уже была такая тема. Там тоже, насколько помню, не нашли изящного решения.
Попробуй поискать ее по форуму.
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Может, сделать, что у конструктора 0 параметров всегда, а параметры передавать в init какой-нить?
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
Цитата:
__________________
Загружаем картинки, минуя ошибки безопасности |
Часовой пояс GMT +4, время: 02:33. |
|
« Предыдущая тема | Следующая тема » |
|
|