| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > использование eval() для вызова метода |
| Автор: Remir 23.1.2007, 13:07 |
| Имеем: 1. несколько объектов (bolder, paper, ... etc) 2. некоторое кол-во методов у каждого из объектов (get, drop, ...) 3. переменные: selectedObject - имя обно из объектов selectedMethod - имя одного из методов принадлежащих выбранному объекту Вопрос: Как с помощью eval() организовать вызов метода (скажем Bolder.drop();) ? Имена объектов и их методов в данной строке должны меняться динамически, скажем(selectedObject.selectedMethod()) |
| Автор: Remir 23.1.2007, 14:05 | ||||
не совсем так. в моем случае m1 - не строка а ф-ция. И еще, забыл уточнить, скрипт используется не в среде web - т.е. window, alert, etc. - это не используется.
Да здесь я могу получить вызов метода lock() к различным объектам присваивая selectedObject их имена а вот как в этой же строке (ну или) изменить значение после точки т.е. lock() на open() ??? |
| Автор: Zeroglif 23.1.2007, 14:25 |
| lock - это имя метода, метод можно вызвать или obj.lock(), или obj['lock']() , во втором случае можно использовать переменную, например, var x = 'lock'; obj[x](); Будет проще понять, если будет код. Пока всё туманно. |
| Автор: Remir 23.1.2007, 15:29 | ||
Да собственно тут код чисто для наглядности
|
| Автор: Zeroglif 23.1.2007, 15:46 | ||||
Третий раз пробую ответить - скобочная нотация. Если с eval (не знаю, что за среда), то:
А браузерах selectedObject можно вывести из-под eval:
|
| Автор: Remir 23.1.2007, 15:59 | ||||
| Zeroglif, пасиб за старания. да я поробовал
но в результате получаю только определение "object1" - отсутствует. Печально все как-то. Добавлено @ 16:09 ЕСТЬ ! работает
Вот в таком виде работает! Мдя.... учится учиться и еще раз поспать |