Показать сообщение отдельно
  #1 (permalink)  
Старый 01.09.2014, 16:53
Аспирант
Отправить личное сообщение для sss2019 Посмотреть профиль Найти все сообщения от sss2019
 
Регистрация: 15.06.2010
Сообщений: 41

Как вызвать функцию из переменной?
Здравствуйте. Подскажите как вызвать функцию которая была присвоена переменной? Пробовал eval, но по моему эта переменная становится глобальной. Сейчас покажу что происходит в коде.

У меня был примерно такой код

// Сначала объявляется функция которая выводит сообщение, и выполняет какое либо действие при закрытии сообщения, если действие установлено
function MessageBox(message, action)
{
	$('.message').html(message).show();
	if(typeof action != 'undefined') eval(action)();
}

function Func1()
{
	// ... какие либо действия
	var action = function(){ alert(1); }
	MessageBox('Сообщение1', action);
}

// ... какие либо действия

	MessageBox('Сообщение1');


Если мы сначала при выполнении вызываем функцию Func1, то она задает переменную action которая вызывает алерт.

Но дальше просто вызывается функция MessageBox, без присваивания action. Но этот action все равно срабатывает.

Как быть?
Ответить с цитированием