Этот код будет работать внутри вашего тега скрипта:
function professor(name, myLecture){
this.name = name;
this.myLecture = myLecture;
}
professor.prototype.display = function(){
return this.name + " is teaching " + this.myLecture;
};
function subjectList(subject){
this.subject = subject;
}
subjectList.prototype.showAll= function(){
var str = " " ;
for(var i = 0 ; i<subject.length; i++ )
str+= this.subject[i].display();
return str;
};
var ListOfSubs = new subjectList([
new professor("Muy","Obprog")
]);
alert(ListOfSubs.showAll());
Причина: в вашей функции showAll вы использовали субъект, которого не существует, но объект вашего прототипа имеет член с именем субъекта. Таким образом, вместо i<subject.length
, i<this.subject.length
решает вашу проблему.