Задать вопрос
@Nikita_Migushev

Как аргумент функции обращается к массиву в этом коде (Javascript)?

Есть код, в котором функции передаются друг другу несколько раз.

В самом конце кода есть функция processPassengers в аргументе которой другая функция serveCustomer.

Полностью строка выглядит processPassengers(passengers, serveCustomer).

В функции serveCustomer есть в свою очередь аргумент serveCustomer(passenger).

Этот код работает и делает то, что нужно )

Вопрос: Каким образом аргумент функции serveCustomer(passenger) обращается к массиву passengers (вначале кода)?

var passengers = [{
        name: "Jane",
        paid: true,
        ticket: "coach"
    },
    {
        name: "Evil",
        paid: true,
        ticket: "firstclass"
    },
    {
        name: "Sue",
        paid: false,
        ticket: "firstclass"
    }
];


function processPassengers(passengers, testFunction) {
    for (var i = 0; i < passengers.length; i++) {
        testFunction(passengers[i]);
    }

}

function createDrinkOrder(passenger) {
    var orderFunction;

    if (passenger.ticket === "firstclass") {
        orderFunction = function() {
        alert(passenger.name + ", " + "Would you like a cocktail or wine?");
        }
    } else {
        orderFunction = function() {
        alert(passenger.name + ", " + "Your choice is cola or water");
        }
    }
    return orderFunction;
}

function serveCustomer(passenger) {
    var getDrinkOrderFunction = createDrinkOrder(passenger);
    getDrinkOrderFunction();

}

processPassengers(passengers, serveCustomer);
  • Вопрос задан
  • 59 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Nikita_Migushev Автор вопроса
Кажется, понял )

Вот здесь находит )

function processPassengers(passengers, testFunction) {
    for (var i = 0; i < passengers.length; i++) {
        testFunction(passengers[i]);
    }

}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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