開発環境
- OS X Mavericks - Apple(OS)
- Safari, Firefox + Firebug, Google Chrome(Webプラウザ、プラグイン)
- BBEdit - Bare Bones Software, Inc. (GUI) , Emacs (CUI) (Text Editor)
- JavaScript (プログラミング言語)
Head First JavaScript Programming (Eric T. Freeman (著)、 Elisabeth Robson (著)、 O'Reilly Media )のChapter 10(Liberated functions: First Class Functions)、EXERCISE(p.456)を解いてみる。
EXERCISE(p.456)
コード(BBEdit, Emacs)
var createDrinkOrder = function (passegner) { var orderFunction; if (passegner.ticket === 'firstclass') { orderFunction = function () { print('Would you like a cocktail or wine?'); }; } else if (passegner.ticket === 'premium') { orderFunction = function () { print('Would you like wine, cola or water?'); }; } else { orderFunction = function () { print('Would you like cola or water?'); }; } return orderFunction }, createDinnerOrderFunction = function (passegner) { var orderFunction; if (passegner.ticket === 'firstclass') { orderFunction = function () { print('Would you like chicken or pasta?'); }; } else if (passegner.ticket === 'premium') { orderFunction = function () { print('Would you like a snack box or cheese plate?'); }; } else { orderFunction = function () { print('Would you like peanuts or pretzels?'); }; } return orderFunction; }, serveCustomer = function (passegner) { var getDrinkOrderFunction = createDrinkOrder(passegner), getDinnerOrderFunction = createDinnerOrderFunction(passegner); getDrinkOrderFunction(); getDrinkOrderFunction(); getDinnerOrderFunction(); getDrinkOrderFunction(); getDrinkOrderFunction(); }, servePassengers = function (passengers) { var i, max; for (i = 0, max = passengers.length; i < max; i += 1) { print(passengers[i].name + ', ' + passengers[i].ticket); serveCustomer(passengers[i]); } }, passengers = [ {name: "Jane Doloop", paid: true, ticket: 'firstclass'}, {name: "Dr. Evel", paid: true, ticket: 'coach'}, {name: "Sue Property", paid: false, ticket: 'premium'}, {name: "John Funcall", paid: true, ticket: 'coach' }]; servePassengers(passengers);
0 コメント:
コメントを投稿