JavaScriptの他の関数から関数を返す方法を学んでいます。ここで働く私のコードは次のとおりです。JavaScriptの関数から関数を返す
var passengers = [
{ name: "Jane", ticket: "coach" },
{ name: "Evel", ticket: "firstclass" },
{ name: "John", ticket: "coach" },
{ name: "Bob", ticket: "premium"}
];
function createDrinkOrder(passenger) {
var orderFunction;
if (passenger.ticket === 'firstclass') {
orderFunction = function() {
console.log(passenger.name + ', would you like wine or cocktail?');
};
} else if (passenger.ticket === 'premium') {
orderFunction = function() {
console.log(passenger.name + ', would you like some wine?');
};
} else {
orderFunction = function() {
console.log(passenger.name + ', soda or water?');
};
}
return orderFunction;
}
function serveOnePassenger(passenger) {
var getDrinkOrderFunction = createDrinkOrder(passenger);
getDrinkOrderFunction();
// createDrinkOrder(passenger);
}
// General function to serve passengers:
function servePassengers(passengers) {
for (var i = 0; i < passengers.length; i++) {
serveOnePassenger(passengers[i]);
}
}
servePassengers(passengers);
私の質問は、「serverOnePassenger」関数についてです。私は、この関数の最初の2行をコメントアウトし、代わりに第三行のコメントを解除したときに、何もで起こりませんもうコンソール。なぜ私は変数を宣言して関数を代入しなければならないのですか?ありがとう!絶対に
3行目は関数を返していますが、実行していないだけです。 'createDrinkOrder(passenger)()'を試してみてください。 –
呼び出す関数は、関数を実行するまで存在しません – Abdul