程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> Atlas學習筆記11:擴展javascript中的繼承

Atlas學習筆記11:擴展javascript中的繼承

編輯:.NET實例教程

接上一節的例子,我們引入類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。


registerClass:就是注冊一個類。他包含三個參數,第一個是類的名字,第二個是基類的名字,第三個是接口的名字。本例中兩處使用了他:
Demo.Person.registerClass(''Demo.Person'')和Demo.Teacher.registerClass(''Demo.Teacher'',Demo.Person);
第一個是注冊類Demo.Person,第二個則是注冊他的子類Demo.Teacher。
類都定義好了,下面可以直接調用了:


<asp:ScriptManager ID="sm" runat="server"></ASP:ScriptManager>
    <input type="button" value="Introduce" onclick="Introduce()" />
    <input type="button" value="TeacherIntroduce" onclick="TeacherIndroduce()" 

255)">/>
    <script type="text/Javascript" src="js/demo_class.JS"></script>
    <script type="text/Javascript">
    function Introduce()
    {
        var person = new Demo.Person(''liuwu'');
        alert(''245)">my name is ''+person.getName());
        alert(person.toString());
        return false;
    }
    function TeacherIndroduce()
    {
        var teacher = new Demo.Teacher(''liuwu'',''computer'');
        alert(245)">''my name is ''+teacher.getName()+" and i teach "+ teacher.getCourse());
        alert(teacher.toString());
        return false;
    }
    </script>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved