Javascript функции высокого порядка - Как передать переменную из функции в ее родительскую функцию - PullRequest
0 голосов
/ 04 ноября 2018

Я пытаюсь решить этот алгоритм. Я думаю, что я очень близко.

Мне нужна функция seven, чтобы передать переменную a в функцию timesFive. ИЛИ есть ли способ передать операцию * 5 из timesFive в семь, чтобы получить желаемый результат?

  • Мне не разрешено иметь переменные вне этих двух областей действия.
  • Я могу добавить еще один аргумент в timesFive, если b остается первым аргументом.

    function seven(action) {
        var a = 7;
    
        return action;
    }
    
    
    function timesFive(b) {
        console.log(a);  // How can I access "a"?
    
        return a * 5;
    }
    
    
    console.log(seven(timesFive()));    // Desired result: 35
    

1 Ответ

0 голосов
/ 04 ноября 2018

timeFive должен возвращать функцию, а семь должны ожидать функцию в качестве параметра. Тогда seven может просто вызвать функцию, которую возвращает timesFive() (поэтому, в основном, возвращает операцию * 5, как вы упомянули в своем вопросе):

function seven(action) {
    var a = 7;
    return action(a);
}


function timesFive() {
    return (a) => a * 5;
}

console.log(seven(timesFive()));    // Desired result: 35

КСТАТИ Вы часто будете видеть такие упражнения, написанные таким образом, чтобы имитировать функциональные обозначения из математики, например:

const seven = (action) => action(7);
const timesFive = () => (a) => a * 5;

console.log(seven(timesFive()));    // Desired result: 35
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...