Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.11.2015, 23:06
Новичок на форуме
Отправить личное сообщение для kaang Посмотреть профиль Найти все сообщения от kaang
 
Регистрация: 11.11.2015
Сообщений: 6

Значения аргументов в функциях высшего порядка
Здравствуйте!
Возник вопрос по аргументам функции:
function unless(test, then) {
if(!test) then();
}
function repeat(times, body) {
	for(var i = 0; i < times; i++) body(i);
}

repeat(3, function(n) {
	unless(n % 2, function() {
	console.log(n, "is even");
});
// → 0 is even
// → 2 is even

При вызове функция repeat принимает в качестве второго аргумента анонимную функцию, которая в свою очередь, принимает аргумент n, который дальше фигурирует в качестве аргумента функции unless. Помогите пожалуйста разобраться откуда берется значение аргумента n?
Ответить с цитированием
  #2 (permalink)  
Старый 11.11.2015, 23:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Сообщение от kaang
Помогите пожалуйста разобраться откуда берется значение аргумента n?
Сообщение от kaang
body(i);
так вот же -- значение i и будет аргументом n
Ответить с цитированием
  #3 (permalink)  
Старый 11.11.2015, 23:22
Новичок на форуме
Отправить личное сообщение для kaang Посмотреть профиль Найти все сообщения от kaang
 
Регистрация: 11.11.2015
Сообщений: 6

Сообщение от рони Посмотреть сообщение
так вот же -- значение i и будет аргументом n
Невнимательно просмотрел код.
Спасибо большое, Вы очень помогли.
Ответить с цитированием
  #4 (permalink)  
Старый 12.11.2015, 22:55
Аспирант
Посмотреть профиль Найти все сообщения от pnpquest
 
Регистрация: 09.11.2015
Сообщений: 94

Что-то тошнить начинает от этих ваших фвп-фапэ, когда вспоминаешь, как это в нормальных ЯП делается.

unless := method(args := call message arguments; if(doMessage(args at(0)) not, doMessage(args at(1))) )

unless(0 < 1, write(1)) 
unless(0 > 1, write(2)) //  2

Последний раз редактировалось pnpquest, 13.11.2015 в 00:35.
Ответить с цитированием
Ответ



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

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