![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Stampede |
|
||||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 4 Всего: 144 |
Вот есть такая удобная штука как инициализация объекта массивом свойств:
Отлично. А как мне теперь создать объест определенного типа и инициализировать его аналогичным образом. Например, элемент листбокса:
Я попробовал так, как написал, но JS такого не понимает. Спинным мозгом чувствую, что должно быть решение - уж больно удобный способ создавать объекты из серверного скрипта. Кто подскажет? -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
||||
|
|||||
| DEER |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 749 Регистрация: 12.4.2005 Где: г. Рязань Репутация: 2 Всего: 13 |
Вот так можно создать новый DIV на странице, В функцию createElement("div"), можно вписать имя и других объектов -------------------- |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Пишешь функцию-конструктор и вызываешь ее.
Объясни, чего ты хочешь получить - может не тем путем идешь?! |
|||
|
||||
| Sardar |
|
||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Для начала, типов в JS нет, соответственно нет и классов. Есть конструкторы что привёл DEER, но конструктор по сути ничем не отличаеться от внешней инициализации обьекта, т.е. obj.pole=90; из любой другой функции будет иметь тот же эффект что и из под конструктора.
Во вторых "инициализация объекта массивом свойств" - это не совсем верное определение. Ты создаёшь новый литеральный обьект, конструктором которого будет Object(поясню позже), изменив прототип полученного обьекта ты приведёшь его "к типу", т.е. к связи "он есть что-то", что важно в конструкции instanceof(поясню позже). Читаем мою тему о прототипах и т.д., врубаемся что любая функция может быть конструктором. Любой обьект имеет поле constructor указывающее на функцию-конструктор. Это верно для всех обьектов (кроме ИЕ, в нём html обьекты вроде как не имеют конструкторов). Кто конструктор обьекта по большому счёту не важно, но может быть полезно если обьект этого сам не знает и хочет сделать себе подобного. Понятие прототип обьекта это одна из основ JS. Несколько понятий заранее:
Теперь подумаем над вопросом:
Конструктор в Option нам не изменить и не переопределить, т.к. это обьект окружения(браузер). Тогда припишем ему свой init метод, который и отработает детали.
И тут опять убеждаемся в отстойности интерпретатора JS в ИЕ, в нём встроенные html обьекты "типа понарошку", к прототипу не подобраться. Следовательно нельзя, допустим для элемента div определить свои методы/поля, т.е. определить свой интерфейс. Естественно это всё возможно в Мозилле и Опере. В итоге пишем отдельную функцию где инициализируем похожим способом обьект Option. Обьяснил подробно, т.к. помню тебе было интересно -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 4 Всего: 144 |
Все понял, всем спасибо.
Я, кстати, так сперва и делал, а потом подумал, может Options можно создавать напрямую? Теперь понятно, что для этого можно написать свою функцию инициализации, но как-то это... некошерно Так что пока обойдусь литеральными объектами. |
|||
|
||||
| Zeroglif |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
Stampede
Встроенный конструктор new Option(text, value, defaultSelected, selected) не подходит? Создаёшь объект и пуляешь его в массив options нужного селекта.
Если не подходит, то, как сказали ранее, энными DOM-овскими методами, предварительно подготовив нужные свойства для option. |
|||
|
||||
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 4 Всего: 144 |
Почти подходит, но у меня с элементами списка сассоциированы еще и мои собственные custom properties. Кстати, щас обнаружил, что присвоить их можно, но при клонировании они не передаются. Ничо, поправил, уже все мослает как по маслу |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |