![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Remir |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 23.1.2007 Репутация: нет Всего: нет |
Имеем:
1. несколько объектов (bolder, paper, ... etc) 2. некоторое кол-во методов у каждого из объектов (get, drop, ...) 3. переменные: selectedObject - имя обно из объектов selectedMethod - имя одного из методов принадлежащих выбранному объекту Вопрос: Как с помощью eval() организовать вызов метода (скажем Bolder.drop();) ? Имена объектов и их методов в данной строке должны меняться динамически, скажем(selectedObject.selectedMethod()) |
|||
|
||||
| Zeroglif |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
Скобочная нотация не подойдет?
Имена объектов и методов в данном случае - это строки, соответственно, динамику можно организовать. Потому как переменную к переменной не прицепишь, если только:
|
||||||
|
|||||||
| Remir |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 23.1.2007 Репутация: нет Всего: нет |
не совсем так. в моем случае m1 - не строка а ф-ция. И еще, забыл уточнить, скрипт используется не в среде web - т.е. window, alert, etc. - это не используется.
Да здесь я могу получить вызов метода lock() к различным объектам присваивая selectedObject их имена а вот как в этой же строке (ну или) изменить значение после точки т.е. lock() на open() ??? |
||||
|
|||||
| Zeroglif |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
lock - это имя метода, метод можно вызвать или obj.lock(), или obj['lock']() , во втором случае можно использовать переменную, например, var x = 'lock'; obj[x]();
Будет проще понять, если будет код. Пока всё туманно. |
|||
|
||||
| Remir |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 23.1.2007 Репутация: нет Всего: нет |
Да собственно тут код чисто для наглядности
|
|||
|
||||
| Zeroglif |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
Третий раз пробую ответить - скобочная нотация. Если с eval (не знаю, что за среда), то:
А браузерах selectedObject можно вывести из-под eval:
|
||||
|
|||||
| Remir |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 23.1.2007 Репутация: нет Всего: нет |
Zeroglif, пасиб за старания.
да я поробовал
но в результате получаю только определение "object1" - отсутствует. Печально все как-то. Добавлено @ 16:09 ЕСТЬ ! работает
Вот в таком виде работает! Мдя.... учится учиться и еще раз поспать |
||||
|
|||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |