Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.05.2015, 16:43
Кандидат Javascript-наук
Отправить личное сообщение для iNfantry Посмотреть профиль Найти все сообщения от iNfantry
 
Регистрация: 29.10.2011
Сообщений: 132

Вызов функции через переменную
Всем привет, не могу понять как сделать простейшую вещь - вызвать функцию через переменную по аналогии с пхп.
Например у меня есть функция my_func() и я хочу присвоить ее имя переменной fn_name = 'my_func'; и вызвать fn_name.apply(this, '123'), но мне пишет что в fn_name - не функция, как это делается в яваскрипте самым простым способом?

Последний раз редактировалось iNfantry, 05.05.2015 в 16:45.
Ответить с цитированием
  #2 (permalink)  
Старый 05.05.2015, 16:57
Аватар для vasa_c
Профессор
Отправить личное сообщение для vasa_c Посмотреть профиль Найти все сообщения от vasa_c
 
Регистрация: 12.03.2008
Сообщений: 183

Зачем? Поместите в переменную саму функцию, а не имя.
Ответить с цитированием
  #3 (permalink)  
Старый 05.05.2015, 17:30
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

function my_func() {
alert('lala');
}
var fn_name = 'my_func';
window[fn_name]();
Ответить с цитированием
  #4 (permalink)  
Старый 05.05.2015, 17:32
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

function myFunc() {
  alert(this);
}

var fnName = myFunc;

fnName.call(123);
Ответить с цитированием
  #5 (permalink)  
Старый 06.05.2015, 01:29
Кандидат Javascript-наук
Отправить личное сообщение для iNfantry Посмотреть профиль Найти все сообщения от iNfantry
 
Регистрация: 29.10.2011
Сообщений: 132

Safort, большое спасибо, то что надо!
vasa_c, дело в том, что имя функции генерится динамически.
Кстати, я еще один способ нашел - просто через eval().
Ответить с цитированием
  #6 (permalink)  
Старый 06.05.2015, 07:54
Аватар для vasa_c
Профессор
Отправить личное сообщение для vasa_c Посмотреть профиль Найти все сообщения от vasa_c
 
Регистрация: 12.03.2008
Сообщений: 183

Ну, вот, дали человеку решение в лоб, теперь он будет фигнёй маятся, вместо того, чтобы подумать.
Ответить с цитированием
  #7 (permalink)  
Старый 06.05.2015, 11:02
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
vasa_c, дело в том, что имя функции генерится динамически.
Херня. Так не должно быть.
Ответить с цитированием
  #8 (permalink)  
Старый 08.05.2015, 17:35
Кандидат Javascript-наук
Отправить личное сообщение для iNfantry Посмотреть профиль Найти все сообщения от iNfantry
 
Регистрация: 29.10.2011
Сообщений: 132

Сообщение от vasa_c Посмотреть сообщение
Ну, вот, дали человеку решение в лоб, теперь он будет фигнёй маятся, вместо того, чтобы подумать.
О чем подумать? Что не так?
Ответить с цитированием
  #9 (permalink)  
Старый 08.05.2015, 19:38
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Хотя бы о том, что использование эвала исключает любые оптимизации кода интерпретатором.

Цитата:
имя функции генерится динамически
Зачем?

Последний раз редактировалось Erolast, 08.05.2015 в 19:41.
Ответить с цитированием
  #10 (permalink)  
Старый 11.05.2015, 14:24
Кандидат Javascript-наук
Отправить личное сообщение для iNfantry Посмотреть профиль Найти все сообщения от iNfantry
 
Регистрация: 29.10.2011
Сообщений: 132

Сообщение от Erolast Посмотреть сообщение
Зачем?
Допустим есть несколько однотипных функций funcA, funcB и funcC, вместо кучи ифов удобно использовать сразу вызов нужного имени. Это плохо?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обратиться к элементу по ID через переменную? pashin76 jQuery 2 07.03.2014 19:51
Запретить вызов функции noak96 Общие вопросы Javascript 2 04.02.2014 20:10
Вызов функции TicTac Общие вопросы Javascript 2 24.01.2011 23:35
Вызов функции, находящейся в другой функции ZneP Events/DOM/Window 6 24.08.2010 18:45
вызов функции, из JS генерируемого на сервере subaru AJAX и COMET 1 12.07.2008 13:44