我正在创建一个测验交互,经过几天的研究,我试图确定声明我的对象的最佳方式。有一个主匿名函数(可以称为测验,但不需要公共方法),其中包含场景的类定义,其中包含问题的类定义:
测验 > 情景 > 问题 > 答案(最终)
我更喜欢立即调用('iffy')模型来强制执行私有/公共,但我也需要多个实例,所以我相信我应该使用原型?我已将类定义设为私有,因为它们仅用于此交互。这是最好的模型吗?
JsFiddle:http: //jsfiddle.net/QtCm8/
(function(quizData) {
var scenarios = [];
for(var s=0;s<quizData.scenarios.length;s++) scenarios.push(new Scenario(quizData.scenarios[s]));
function Scenario(scenarioData) {
console.log("New Scenario: " + scenarioData.title);
var questions = [];
for(var q=0;q<scenarioData.questions.length;q++) questions.push(new Question(scenarioData.questions[q]));
function Question(questionData) {
console.log("New Question: " + questionData.text);
// Repeat pattern for future answers object
}
}
})({
scenarios: [
{
title: 'Scenario1'
,questions: [
{
text: 'What is 1+1?'
}
,{
text: 'What is 2+2?'
}
]
}
]
});