感觉与java的继承相比,JavaScript的继承很有意思。
function Person(me){
me.name="yjd";
me.age=23;
me.myConstructor=Person;
return me;
}
function New(C){
var me;
if(C.myPrototype==undefined || C==C.myPrototype.constructor){
me=Object();
}else{
me=New(C.myPrototype.myConstructor);
}
C(me);
return me;
}
//原型继承
function Student(me){
me.school="海德中学";
me.myConstructor=Student;
return me;
}
Student.myPrototype=New(Person);
var a=New(Student);
alert(a.name);
alert(a.age);
alert(a.school);
//模拟继承
function Student2(me){
Person(me);
me.school="海德中学";
me.myConstructor=Student;
return me;
}
var b=New(Student2);
alert(b.name);
alert(b.age);
alert(b.school);
真正的继承是否这样我不得而知,也不知道自己的猜想是否合理。注意代码中的New(),它用来模仿new关键字,其中使用了递归要仔细看呀。