Вызвать функцию JS по имени в переменной

311
17 октября 2017, 05:01

Есть форма с дата-атрибутом "callback", он содержит название функции, которая должна запуститься после отработки AJAX

<form data-callback="test">
// code...
<form>
// по "on submit" отправляю форму
$.ajax({
  // code...
  success: function(data) {
    // здесь надо вызвать функцию "test"
  }
});

eval() не предлагать.

Пробовал реализовать через объект:

var ObjectName = {
  test : function(){
    // code...
  }
}

Объявлять функции как методы класса и потом обращаться по имени метода ObjectName[callback]() и это работает, но очень нестабильно, в зависимости о того, где объявлять объект - до или после.

Answer 1

Может стоит уже вместо var -- let и const использовать? var до объявления равны undefined, а с let и const код просто не запустится, они видны только после их объявления, и всё будет либо работать стабильно, либо не будет работать,

в зависимости о того, где объявлять объект - до или после.

READ ALSO
Вывести переменную внутри объекта

Вывести переменную внутри объекта

Как вывести переменную fullName ? Почему этот код не работает и не выводится "Bob Ross"?

245
Отключить кэширование Ajax запросов

Отключить кэширование Ajax запросов

Здравствуйте, форма заказа отправляется на почту через Ajax запросВо всех браузерах кроме Safari вопросов с ее отправлением не возникает, а вот...

314