Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.05.2019, 11:27
Интересующийся
Отправить личное сообщение для ishurgaya Посмотреть профиль Найти все сообщения от ishurgaya
 
Регистрация: 12.08.2015
Сообщений: 29

Вызвать функцию по названию из переменной
Есть функция в которой в зависимости от условия нужно вызвать ту или иную функцию.
function addTag(src, type){
    var functionName = (type === 'js') ? "createScriptTag" : "createStyleTag";
    if( Array.isArray(src) ) {
        for(let i=0;i<src.length;i++) {
            functionName(src[i]);
        }
    }else{
         functionName(src);
    }
}


В переменной functionName содержится название функции.
Но при выполнение получаю ошибку, что functionName не определена.

Не ужели нельзя передать название функции и вызвать ее?
Помогите пожалуйста

Последний раз редактировалось ishurgaya, 08.05.2019 в 11:31.
Ответить с цитированием
  #2 (permalink)  
Старый 08.05.2019, 12:10
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

window[functionName]
object[functionName]
Ответить с цитированием
  #3 (permalink)  
Старый 08.05.2019, 14:31
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,213

Сообщение от ishurgaya
Не ужели нельзя передать название функции и вызвать ее?
Нужно точно знать область видимости функции, которую ты хочешь вызывать по "строковой константе"...
function test(){
	alert('Ok');
}
var name='test';
window[name]();

Из твоего "примера" не понятно где и как вообще та функция определена...
Ответить с цитированием
  #4 (permalink)  
Старый 08.05.2019, 14:35
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,213

Сообщение от ishurgaya
Не ужели нельзя передать название функции и вызвать ее?
А еще лучше передать ссылку на функцию... Или саму функцию.
Тогда такой проблемы не будет вовсе.

function start(Fnc){
	Fnc();
};
function test(){
	alert('Test');
};
start(test);
start(function(){
	alert('Ok');
});
Ответить с цитированием
  #5 (permalink)  
Старый 10.05.2019, 16:29
Интересующийся
Отправить личное сообщение для ishurgaya Посмотреть профиль Найти все сообщения от ishurgaya
 
Регистрация: 12.08.2015
Сообщений: 29

Спасибо вам!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вызвать функцию из переменной? sss2019 Общие вопросы Javascript 7 02.09.2014 13:34
Расширение для Safari. Как вызвать функцию из popover в global page? housewm Opera, Safari и др. 0 21.12.2013 06:07
Как правильно вызвать функцию Mateus jQuery 1 16.12.2012 15:43
Вызвать функцию, имя которой хранится в переменной Алекс_123321 Общие вопросы Javascript 6 12.10.2012 11:22
Как вызвать функцию из другого файла Mukhtar AJAX и COMET 4 07.10.2011 22:01