我創建了一個測驗交互,經過幾天的研究,我試圖確定聲明我的對象的最佳方式。有一個主匿名函數(可以稱爲測驗,但沒有公共方法的要求),其中包含針對問題的類定義的類定義:在JavaScript中封裝類清除器的類名定義名稱空間
測驗>方案>問題>答案(最終)我更喜歡Immediately-Invoked('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?'
}
]
}
]
});
有趣的方法。當它們被設置爲全局變量時,爲什麼要傳入「數據」(類定義)?如果從'(function(data){')中取出參數'data',那麼綁定只會引用全局對象而不是本地對象,是的? – scader 2013-02-19 17:34:29