![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| maxkazar |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 26.1.2004 Где: Таганрог Репутация: нет Всего: нет |
Как быть с объектами? Необходимо написать полноценный объект на клиентском скрипте...ну например объект меню...Возможно ли это?
|
|||
|
||||
| Dr.Death |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 950 Регистрация: 15.7.2003 Где: Волгоград Репутация: нет Всего: 1 |
Да.
делаешь функцию, которая будет конструктором твоего объекта.
Вроде так Это сообщение отредактировал(а) Dr.Death - 29.1.2004, 12:07 -------------------- Жизнь коротка, чтобы быть в ней слабым.© Арнольд Шварцнеггер |
|||
|
||||
| maxkazar |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 26.1.2004 Где: Таганрог Репутация: нет Всего: нет |
Это все понятно. А как насчет наледования?
|
|||
|
||||
| Sardar |
|
||||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
JavaScript это объектно-ориентированный язык с механизмом(способом мышления...) прототипов, через который реализуется наследование и динамическое добавление/изменение полей и методов обьектов.
Обьекты можно создавать только от функций, сама функция выступает в роли конструктора. Повторю за Dr.Death
Если myobj() вызывается как простая функция, то в this "лежит" глобальный контекст имен, т.е. создастся переменная t. При вызове оператором new создается "этакая структура-контейнер" представляющая локальный контекст имен. Поле prototype функции задает поля и методы для всех обьектов созданных от этой функции. Через prototype можно динамически добавить поле/метод к обьекту, изменения коснутся всех обьектов порожденных функцией, вплоть до созданных ранее. Т.е. функция как бы создает тип(а ля class), а в prototype лежит описание типа(внутренняя реализация класса). Наследование В JavaScript - язык с динамическими типами(нет строгих типов), т.е. наследование для приведения к единому типу отпадает. Конечно наследование нужно для использования общего кода в разных "классах". Рассмотрим два типа наследования 1) для методов разных типов задаем одну реализацию 2) реально наследуем от типа дабы новый тип затрагивали все изменения prototype родительского типа. Первый способ - один код для разных типов
Второй способ - ближе к "настоящему" наследованию
Метод Function.apply(name_context, array_of_args) вызывает функцию задавая ей контекст имен, т.е. func.apply(this,...) заставляет функцию func изменять текущий контекст имен. Задавая в prototype некий обьект мы ссылаемся на этот обьект и следовательно на тип этого обьекта, а значит все изменения с его типом отразятся и на нас. Вот и вышло - наследование -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||||
|
|||||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |