![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
iAnthony |
|
||||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 19.1.2009 Где: Moscow Репутация: нет Всего: нет |
Здравствуйте!
Подскажите, пожалуйста, как можно в один объект импортировать набор функций другого? Немного подробнее: 1. Я получаю хендл объекта, и мне надо добавить ему несколько своих функций 2. Для удобства вынес их в отдельный класс и пытаюсь добавлять в хендл объекта При обычном раскладе делал так:
, а сейчас пробую нечно такое:
это, конечно, бред, но думаю из этого видно идею того что я хочу сделать. Заранее благодарен за помощь! Это сообщение отредактировал(а) iAnthony - 26.2.2009, 21:35 |
||||
|
|||||
iAnthony |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 19.1.2009 Где: Moscow Репутация: нет Всего: нет |
Пока единственное что удается сделать, это отдельную функцию, через которую я пропускаю этот хендл и на выходе получаю объект нафаршированный моими функциями:
+ тут же прогрейденная функция getElementsByTagName, чтобы плученные объекты с помощью этой функции тоже содержали мои функции. Вопрос все равно остается открытым, может у кого-нибудь будут какие мысли/предложения/идеи, или может есть какие-нибудь недочеты или ошибки в моем примере. Это сообщение отредактировал(а) iAnthony - 26.2.2009, 21:35 |
|||
|
||||
iAnthony |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 19.1.2009 Где: Moscow Репутация: нет Всего: нет |
Хм, прототип getElementsByTagName не работает "handle.prototype is undefined".
Как же тогда быть? Убрал prototype - скрипт перестал ругаться, но пока не проверял его работоспособность. Это сообщение отредактировал(а) iAnthony - 20.1.2009, 17:27 |
|||
|
||||
iAnthony |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 19.1.2009 Где: Moscow Репутация: нет Всего: нет |
c getElementsByTagName получилось, но пришлось его вынести за функцию:
а вот с getElementById такое не проходит почему-то:
при обращении к document.getElementById() браузер начинает ругаться, например Firefox выдает следующее:
Кто-нибудь знает почему такое случается и как это исправить? |
||||||
|
|||||||
Aliance |
|
||||||||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Прототип существует у объектов, а не у методов. Для создания имитации виртуального наследования в JS (в ООП-языках, эти конструкции называются interface и implements), используются два подхода:
1) Создание дочернего класса Рассмотрим пример:
Этот подход имеет минус: при добавлении какого-либо свойства конструктору forum, объект vingrad не получит это свойство в свой прототип. Но этот минус легко исправляется. Для этого необходимо назначить в качестве прототипа vingrad пустой объект forum:
И это необходимо сделать ДО первого вызова конструктора vingrad 2) Написание функции clone(): Родной функции clone() в JS не существует, но в интернете можно найти много ее реализаций. Например:
|
||||||||
|
|||||||||
iAnthony |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 19.1.2009 Где: Moscow Репутация: нет Всего: нет |
Спасибо огромное за такой развернутый ответ, попробую поэксперементировать!
|
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |