Get Programming with JavaScript - Listing 13.16

Listing 13.16 - Using an IIFE with the quiz app

var quiz = (function () { var qIndex = 0; var questions = [ { question: "7 x 8", answer: "56" }, { question: "12 x 12", answer: "144" }, { question: "5 x 6", answer: "30" }, { question: "9 x 3", answer: "27" } ]; var getQuestion = function () { qIndex = between(0, questions.length - 1); return questions[qIndex].question; }; var checkAnswer = function (userAnswer) { if (userAnswer === questions[qIndex].answer) { return "Correct!"; } else { return "No, the answer is " + questions[qIndex].answer; } }; return { quizMe: getQuestion, submit: checkAnswer }; })();

Further Adventures

Listing 13.16 - Using an IIFE with the quiz app - Tasks 4, 5 & 6

var quiz = (function () { var qIndex = 0; var questions = [ { question: "7 x 8", answer: "56", hint: "7 x 4 = 28" }, { question: "12 x 12", answer: "144", hint: "10 x 12 = 120" }, { question: "5 x 6", answer: "30", hint: "10 x 6 = 60" }, { question: "9 x 3", answer: "27", hint: "10 x 3 = 30" } ]; var getQuestion = function () { qIndex = between(0, questions.length - 1); return questions[qIndex].question; }; var checkAnswer = function (userAnswer) { if (userAnswer === questions[qIndex].answer) { return "Correct!"; } else { return "No, the answer is " + questions[qIndex].answer; } }; var getHint = function () { return questions[qIndex].hint; }; return { quizMe: getQuestion, submit: checkAnswer, helpMe: getHint }; })();