Ext學習筆記2-物件導向

笨笨鼠→_→發表於2012-07-07

6-EXT中的類繼承

--對類的一種擴充套件形式

Ext.namespace('Ext.wang');  //名稱空間

//Person類

Ext.wang.Person = function(_cfg){  //構造方法
    Ext.apply(this, _cfg);
}

Ext.apply(Ext.wang.Person.prototype,{
                    job:'無',
                    print:function(){
                        alert(String.format("姓名:{0},性別:{1},角色:{2}",this.name,this.sex,this.job));
                    }
             });
            
//學生類

Ext.wang.Student = function(_cfg){  //構造方法
    Ext.apply(this,_cfg);
}

Ext.extend(Ext.wang.Student,Ext.wang.Person,{
                            job:"學生"
            //Ext.extend(子類,父類,方法或屬性重寫)方法中有三個引數:
                      });                                 //這裡的{job:"學生"}為屬性重新設定,或方法重寫
                     
//老師類

Ext.wang.Teacher = function(_cfg){  //構造方法
    Ext.apply(this,_cfg);
}

Ext.extend(Ext.wang.Teacher,Ext.wang.Person,{
                            job:"老師"   
         //Ext.extend(子類,父類,方法或屬性重寫)方法中有三個引數:
                      });                                 //這裡的{job:"學生"}為屬性重新設定,或方法重寫
                     
//測試

var _teacher = new Ext.wang.Teacher({name:"王五",sex:"男"});
_teacher.print();

var _student = new Ext.wang.Student({name:"蘇菊",sex:"女"});
_student.print();

 

7-EXT中的類例項方法重寫

--子類在繼承父類時對其已經存在的方法進行重新定義

/// <reference path="../ext/vswd-ext_2.0.2.js" />

Ext.namespace('Ext.wang');  //名稱空間

//Person類

Ext.wang.Person = function(_cfg){  //構造方法
    Ext.apply(this, _cfg);
}

Ext.apply(Ext.wang.Person.prototype,{
                    job:'無',
                    print:function(){
                        alert(String.format("姓名:{0},性別:{1},角色:{2}",this.name,this.sex,this.job));
                    }
             });
            
//學生類

Ext.wang.Student = function(_cfg){  //構造方法
    Ext.apply(this,_cfg);
}

Ext.extend(Ext.wang.Student,Ext.wang.Person,{
                            job:"學生"            //Ext.extend(子類,父類,方法或屬性重寫)方法中有三個引數:
                      });                         //這裡的{job:"學生"}為屬性重新設定,或方法重寫
                     
//老師類

Ext.wang.Teacher = function(_cfg){  //構造方法
    Ext.apply(this,_cfg);
}

Ext.extend(Ext.wang.Teacher,Ext.wang.Person,{
                            job:"老師",            //Ext.extend(子類,父類,方法或屬性重寫)方法中有三個引數:
                            print:function(){      //方法重寫
                                alert(String.format("{0}是一位{1}{2}",this.name,this.sex,this.job));
                            }
                      });                       
                     
//測試

var _teacher = new Ext.wang.Teacher({name:"王五",sex:"男"});
_teacher.print();

var _student = new Ext.wang.Student({name:"蘇菊",sex:"女"});
_student.print();

 

8-Ext中名稱空間的別名

--對於名稱空間的別稱

示例:

Wq = Ext.wang;   //規則:別名首字母必須大寫,其他字母可以小寫

 

完整示例:

Ext.namespace('Ext.wang');  //名稱空間

Ws = Ext.wang;   //名稱空間別名

//Person類

Ext.wang.Person = function(_cfg){  //構造方法
    Ext.apply(this, _cfg);
}

Ext.apply(Ext.wang.Person.prototype,{
                    job:'無',
                    print:function(){
                        alert(String.format("姓名:{0},性別:{1},角色:{2}",this.name,this.sex,this.job));
                    }
             });
            
//學生類

Ext.wang.Student = function(_cfg){  //構造方法
    Ext.apply(this,_cfg);
}

Ext.extend(Ext.wang.Student,Ext.wang.Person,{
                            job:"學生"            //Ext.extend(子類,父類,方法或屬性重寫)方法中有三個引數:
                      });                         //這裡的{job:"學生"}為屬性重新設定,或方法重寫
                     
//老師類

Ext.wang.Teacher = function(_cfg){  //構造方法
    Ext.apply(this,_cfg);
}

Ext.extend(Ext.wang.Teacher,Ext.wang.Person,{
                            job:"老師",            //Ext.extend(子類,父類,方法或屬性重寫)方法中有三個引數:
                            print:function(){      //方法重寫
                                alert(String.format("{0}是一位{1}{2}",this.name,this.sex,this.job));
                            }
                      });                       
                     
//測試

var _teacher = new Ws.Teacher({name:"王五",sex:"男"});   //用了名稱空間別名
_teacher.print();

var _student = new Ws.Student({name:"蘇菊",sex:"女"});   //用了名稱空間別名
_student.print();

 

9-EXT中的類別名

--對於類的別名

PN = Ext.wang.Person;  //類別名的命名規範:必須都為大寫 ,為了和名稱空間別名區別

完整示例程式碼:

Ext.namespace('Ext.wang');  //名稱空間

Ws = Ext.wang;   //名稱空間別名

//Person類

Ext.wang.Person = function(_cfg){  //構造方法
    Ext.apply(this, _cfg);
}

Ext.apply(Ext.wang.Person.prototype,{
                    job:'無',
                    print:function(){
                        alert(String.format("姓名:{0},性別:{1},角色:{2}",this.name,this.sex,this.job));
                    }
             });
            
//學生類

Ext.wang.Student = function(_cfg){  //構造方法
    Ext.apply(this,_cfg);
}

Ext.extend(Ext.wang.Student,Ext.wang.Person,{
                            job:"學生"            //Ext.extend(子類,父類,方法或屬性重寫)方法中有三個引數:
                      });                         //這裡的{job:"學生"}為屬性重新設定,或方法重寫
STU = Ext.wang.Student;  //類別名
                     
//老師類

Ext.wang.Teacher = function(_cfg){  //構造方法
    Ext.apply(this,_cfg);
}

Ext.extend(Ext.wang.Teacher,Ext.wang.Person,{
                            job:"老師",            //Ext.extend(子類,父類,方法或屬性重寫)方法中有三個引數:
                            print:function(){      //方法重寫
                                alert(String.format("{0}是一位{1}{2}",this.name,this.sex,this.job));
                            }
                      });                  
TCH = Ext.wang.Teacher;  //類別名    
                     
//測試

var _teacher = new TCH({name:"王五",sex:"男"}); //應用了類別名
_teacher.print();

var _student = new STU({name:"蘇菊",sex:"女"}); //應用了類別名
_student.print();


相關文章