Есть код, в котором функции передаются друг другу несколько раз.
В самом конце кода есть функция processPassengers в аргументе которой другая функция serveCustomer.
Полностью строка выглядит processPassengers(passengers, serveCustomer).
В функции serveCustomer есть в свою очередь аргумент serveCustomer(passenger).
Этот код работает и делает то, что нужно )
Вопрос: Каким образом аргумент функции serveCustomer(passenger) обращается к массиву passenger
s (вначале кода)?
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);