通过一个简单的例子来阐述。
<script>
function Lecture(name,teacher){
this.name=name;
this.teacher=teacher;
}
Lecture.prototype.display=function(){
return this.teacher+"is teaching "+this.name;
}
function Schedule(lectures){
this.lectures=lectures;
}
Schedule.prototype.display=function(){
var str="";
for(var i=0;i<this.lectures.length;i++)
str+=this.lectures[i].display()+"! ";
return str;
}
var myLecture=new Lecture("Gym","Hunk Wang");
var myLecture2=new Lecture("Tom","Ducklyl");
var myArray=new Array(myLecture,myLecture2);
var mySchedule=new Schedule(myArray);
alert(mySchedule.display());
</script>
运行结果为:Hunk Wang is teaching Gym! Ducklyl is teaching Tom!
下面分析一下流程,以上建立两个类Lecture和Schedule,
首先初始化Lecture类,调用Lecture类构造函数,接着把Lecture类的对象,作为参数传入Schedule类,Schedule对象初始化,从而实现上述结果。
不难发现,这种方式和java是类似的。只过javascript要真正实现面象对象,还需要很多过程实现。
期待后续。