Показать сообщение отдельно
  #1 (permalink)  
Старый 08.01.2013, 10:37
Интересующийся
Отправить личное сообщение для DragorWW Посмотреть профиль Найти все сообщения от DragorWW
 
Регистрация: 27.06.2011
Сообщений: 15

Как передать функцию с параметрами в качестве аргумента другой функции
Есть следующая логика:
random = function (max) {
var min = 1;
return Math.floor(Math.random() * (max - min) + min)
}
someFunction = function (num) {
	var someString = 'numbers: '
	for (var a=0;a<=10;a++) {
		someString = someString + num
	} 
	console.log(someString)
}
someFunction(random(6))

Вернёт 'numbers: 66666666666' или 'numbers: 11111111111' и так далее.

Но мне нужно что бы функция каждый раз вызывалась, а не только первый раз при указание её.
Есть такой вариант, но мне он не очень нравиться:
random = function (max) {
var min = 1;
return Math.floor(Math.random() * (max - min) + min)
}
someFunction = function (num) {
	var someString = 'numbers: '
	for (var a=0;a<=10;a++) {
		someString = someString + num()
	} 
	console.log(someString)
}
someFunction(function() {return random(6)})

Вернёт то что нужно 'numbers: 52524414321'

Но опять же это не удобно, так как num не всегда должно быть функцией, а может быть числом, и тогда придётся писать так:
someFunction(function() {return 6})


Вообщем хочется некой эстетики в коде
Ответить с цитированием