extjs之面向对象编程


1:支持命名空
 

    < script type = " text/javascript " >
        // 定义一个命名空间
        Ext.namespace("Ext.wentao");
        // 在命名空间上定义一个类
        Ext.wentao.helloworld = Ext.emptyFn;
        // 创建一个类的实例
        new Ext.wentao.helloworld();
   
    </ script >

 其中

    Ext.wentao.helloworld  =  Ext.emptyFn;

等价于  

    Ext.wentao.helloworld  =  function() {} ;

 


2:支持类实例属性 

    < script type = " text/javascript " >
        Ext.namespace("Ext.wentao"); // 自定义一个命名空间
        Ext.wentao.Person = Ext.emptyFn; // 在命名空间上自定义一个类

        // 为自定义的类 增加一个 name 属性,并赋值
        Ext.apply(Ext.wentao.Person.prototype, {
            name : "刘文涛"
        });

        var _person = new Ext.wentao.Person();// 实例化 自定义类
        alert(_person.name);
        _person.name = "张三";// 修改类name属性
        alert(_person.name);

    </ script >

 

 
3:支持类实例方法  

    < script type = " text/javascript " >
        Ext.namespace("Ext.wentao"); // 自定义一个命名空间
        Ext.wentao.Person = Ext.emptyFn; // 在命名空间上自定义一个类

        // 演示类实例方法
        Ext.apply(Ext.wentao.Person.prototype, {
            name : "刘文涛",
            sex : "男",
            print : function() {
                alert(String.format("姓名:{0},性别:{1}", this.name, this.sex));
            }
        });

        var _person = new Ext.wentao.Person();// 实例化 自定义类
        _person.print();

    </ script >

 


4:支持类静态方法  

< script type = " text/javascript " >

        Ext.namespace("Ext.wentao"); // 自定义一个命名空间
        Ext.wentao.Person = Ext.emptyFn; // 在命名空间上自定义一个类

        // 演示类实例方法
        Ext.apply(Ext.wentao.Person.prototype, {
            name : "刘文涛",
            sex : "男",
            print : function() {
                alert(String.format("姓名:{0},性别:{1}", this.name, this.sex));
            }
        });

        // 演示 类静态方法
        Ext.wentao.Person.print = function(_name, _sex) {
            var _person = new Ext.wentao.Person();
            _person.name = _name;
            _person.sex = _sex;
            _person.print(); // 此处调用类 实例方法,上面print是类 静态方法
        };

        Ext.wentao.Person.print("张三", "女"); // 调用类 静态方法

    </ script >

 


5:支持构造方法  

< script type = " text/javascript " >
        Ext.namespace("Ext.wentao"); //自定义一个命名空间

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


    
//演示类实例方法
        Ext.apply(Ext.wentao.Person.prototype, {
            print:function()
{
                alert(String.format(
"姓名:{0},性别:{1}",this.name,this.sex));
            }

        }
);
    
    
//演示 类静态方法
        Ext.wentao.Person.print = function(_name,_sex){
            var _person 
= new Ext.wentao.Person({name:_name,sex:_sex});
            _person.print(); 
//此处调用类 实例方法,上面print是类 静态方法
        };


    Ext.wentao.Person.print(
"张三",""); //调用类 静态方法
    </ script >

 


6:支持类继承  

< script type = " text/javascript " >

        Ext.namespace("Ext.wentao"); // 自定义一个命名空间

// *******************父类*********************
        // 构造方法
        Ext.wentao.Person = function(_cfg) {
            Ext.apply(this, _cfg);
        };

        // 演示类实例方法
        Ext.apply(Ext.wentao.Person.prototype, {
            job : "无",
            print : function() {
                alert(String.format("姓名:{0},性别:{1},角色:{2}", this.name,
                    this.sex, this.job));
            }
        });    

// *******************子类1*********************
        Ext.wentao.Student = function(_cfg) {
            Ext.apply(this, _cfg);
        };

        Ext.extend(Ext.wentao.Student, Ext.wentao.Person, {
            job : "学生"
        });

        var _student = new Ext.wentao.Student({
            name : "张三",
            sex : "女"
        });
        _student.print(); // 调用 父类方法

</ script >

 


7:支持类实例方法重写  

    < script type = " text/javascript " >     

        Ext.namespace("Ext.wentao"); // 自定义一个命名空间

// *******************父类*********************
        // 构造方法
        Ext.wentao.Person = function(_cfg) {
            Ext.apply(this, _cfg);
        };

        // 演示类实例方法
        Ext.apply(Ext.wentao.Person.prototype, {
            job : "无",
            print : function() {
                alert(String.format("姓名:{0},性别:{1},角色:{2}", this.name,
                    this.sex, this.job));
                }
        });

// *******************子类1*********************
        Ext.wentao.Student = function(_cfg) {
            Ext.apply(this, _cfg);
        };

        // 重写父类的 实例 方法
        Ext.extend(Ext.wentao.Student, Ext.wentao.Person, {
            job : "学生",
            print : function() {
                alert(String.format("{0}是一位{1}{2}", this.name, this.sex,
                    this.job));
            }
        });

        var _student = new Ext.wentao.Student({
            name : "张三",
            sex : "女"
        });
        _student.print(); // 调用 父类方法

    </ script >

 

8:支持命名空间别名  

    < script type = " text/javascript " >

        Ext.namespace("Ext.wentao"); // 自定义一个命名空间

        Wt = Ext.wentao; // 命名空间的别名

// *******************父类*********************
        // 构造方法
        Wt.Person = function(_cfg) {
            Ext.apply(this, _cfg);
        };

        // 演示类实例方法
        Ext.apply(Wt.Person.prototype, {
            job : "无",
            print : function() {
                alert(String.format("姓名:{0},性别:{1},角色:{2}", this.name,
                     this.sex, this.job));
            }
        });

// *******************子类1*********************
        Wt.Student = function(_cfg) {
            Ext.apply(this, _cfg);
        };

        // 重写父类的 实例 方法
        Ext.extend(Wt.Student, Ext.wentao.Person, {
            job : "学生",
            print : function() {
            alert(String.format("{0}是一位{1}{2}", this.name, this.sex,
                     this.job));
            }
        });

        var _student = new Wt.Student({
            name : "张q三",
            sex : "女"
        });
        _student.print(); // 调用 父类方法


    </ script >

 

9:支持类别名 

< script type = " text/javascript " >

        Ext.namespace("Ext.wentao"); // 自定义一个命名空间

        Wt = Ext.wentao; // 命名空间的别名

// *******************父类*********************
        // 构造方法
        Wt.Person = function(_cfg) {
             Ext.apply(this, _cfg);
        };

        PN = Wt.Person; // 类别名

        // 演示类实例方法
        Ext.apply(PN.prototype, {
            job : "无",
            print : function() {
            alert(String.format("姓名:{0},性别:{1},角色:{2}", this.name,
                    this.sex, this.job));
            }
        });

// *******************子类1*********************
        Wt.Student = function(_cfg) {
            Ext.apply(this, _cfg);
        };

        ST = Wt.Student;

        // 重写父类的 实例 方法
        Ext.extend(ST, PN, {
            job : "学生",
            print : function() {
                alert(String.format("{0}是一位{1}{2}", this.name, this.sex,
                     this.job));
            }
        });

        var _student = new ST({
            name : "张q三",
            sex : "女"
        });
        _student.print(); // 调用 父类方法

    </ script >
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值