Задать вопрос
my_kachanov
@my_kachanov
Начинающий веб-разработчик

Возвращаем функции как результаты?

Не могу понять такую вещь. Как при вызове console.log(snakify("The Millenials are always up to something.")); функция понимает, что идет обращение к 3 аргументу, а не к 1 или же второму? Если есть возможность указать в каком направлении искать информацию, буду благодарен.
var attitude = function(original, replacement, source) {
  return function(source) {
    return source.replace(original, replacement);
  };
}; 
var snakify = attitude(/millenials/ig, "Snake People");
console.log(snakify("The Millenials are always up to something."));
  • Вопрос задан
  • 102 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 2
rockon404
@rockon404
Frontend Developer
Обращение идет к первому аргументу.
Вы при вызове:
var snakify = attitude(/millenials/ig, "Snake People");

возвращаете в snakify такую функцию:
function(source) {
  return source.replace(/millenials/ig, "Snake People");
};


и она принимает только один аргумент source.
Ответ написан
Stalker_RED
@Stalker_RED
Ваша snakify, это не функция attitude, у которой три аргумента, а та анонимная функция, которая была возвращена при помощи return. И у нее только один аргумент.

HCYkDO5.png

Вот здесь описано, как это работает.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Columnistdc
Junior front-end
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы