接上一節的例子,我們引入類Teacher,他繼承自Person,下面是具體的代碼:
Type.registerNamespace("Demo");
Demo.Person = function(name) {
this._name = name;
}
Demo.Person.prototype = {
getName: function() {
return this._name;
},
toString:function(){
return "name:"+ this._name;
}
}
Demo.Person.registerClass(''Demo.Person'');
Demo.Teacher = function(name,course){
Demo.Teacher.initializeBase(this,[name]);
this._course = course;
}
Demo.Teacher.prototype ={
getCourse:function(){
return this._course;
},
toString:function(){
return Demo.Teacher.callBaseMethod(this,''toString'')+" course:"+this.getCourse();
}
}
Demo.Teacher.registerClass(''Demo.Teacher'',Demo.Person);
這裡有幾個重要的方法:
initializeBase,callBaseMethod,registerClass。
initializeBase:用於在指定的實例中初始化基類和他的成員。他包含兩個參數,第一個參數是我們指定的實例,通常為this,第二個參數是基類構造函數的參數,可以為null。
callBaseMethod:用指定的參數調用基類的方法,他包含三個參數,第一個是我們指定的實例,通常為this。第二個是我們想調用的基類的方法,第三個則是該方法的參數,可以為null。
255)">/>