Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как из функции, вызываемой по событию, вернуть значение? (https://javascript.ru/forum/events/62265-kak-iz-funkcii-vyzyvaemojj-po-sobytiyu-vernut-znachenie.html)

dry fig 01.04.2016 21:56

Как из функции, вызываемой по событию, вернуть значение?
 
Дано: функция, вызываемая по событию. Требуется вернуть значение функции.
Конечно, можно использовать глобальную переменную для передачи туда результата, но делать это как-то не хочется.
Если путей решения несколько - перечислите их, пожалуйста. И заранее говорю спасибо всем участникам )

<html>
	<head>
	</head>	
	<body>
		<button id='id_button'>Функция умножения</button>
	</body>
</html>

<script>	
	function mul() {
		var a = 2;
		var b = 3;
		var result = a * b;
		return result;
	}

	document.getElementById('id_button').onclick = mul;	
	// alert( ??? ) /* Как вывести результат на экран? /*
</script>

Alexander Belov 01.04.2016 22:42

dry fig,
alert(mul())

dry fig 01.04.2016 23:11

А можно ли получить result из функции?
Т.е. что-то вроде:
var globVar = mul();

Alexander Belov 01.04.2016 23:49

dry fig,
result - это и есть то, что возвращает Ваша функция

В своём примере
var globVar = mul();


Вы сохранили значение выражения своей функции в переменной globVar

dry fig 02.04.2016 09:23

А как быть в случае, если функция принимает аргументы? Вот так, например:
function mul(a, b) {
	return function() {
		return a * b;
	};
}
	
var a = 2;
var b = 3;
document.getElementById('id_button').onclick = mul(a, b);
// alert(mul()); // вот так не cработает
var result = ??? // Как получить значение функции?

protoquest 02.04.2016 12:49

отдельный неймспейс, замыкание, проброс через коллбек.


Часовой пояс GMT +3, время: 18:08.