Ext 命名空间、类定义、继承、事件

Ext.namespace("Ext.MyApp");      //定义命名空间。

        Ma = Ext.MyApp;    //定义命名别名。

        Ma.Person = Ext.emptyFn;        //Person类,人类在Ext.MyApp这个命名空间下。

        Ma.Student = Ext.emptyFn;       //Student 类。

        

        Ma.Person = function(_cfg) {

            Ext.apply(this, _cfg);         //_cfg在实际中是如下格式{Name:'老狼',Sex:'男'}

        }

        Ma.Student = function(_cfg) { //Student 类这里注册了一个名字改变时的事件。

            Ext.apply(this, _cfg);

            this.addEvents('NameChange');     //注册事件。

        }

        Ext.extend(Ma.Person, Ext.util.Observable); //Person类继承Ext事件类。

        

        Ext.apply(Ma.Person.prototype, {  

        job:'无', //定义一个属性。

        print: function() { //定义一个方法。

            alert(String.format("姓名:{0} -- 性别:{1} --- 职业:{2}", this.Name, this.Sex));

            }

        });

 

        Ma.Person.Print = function(_Name, _Sex) {   //定义了一个Person类的静态方法。

            var Person = new Ma.Person({ Name: _Name, Sex: _Sex });

            Person.print();

        }

 

        

        Ext.extend(Ma.Student, Ma.Person, {   //Student类继承了Person类。

            job: '我是学生',     //重定义父类属性。

            setName: function(_Name) {    //添加了一个新的方法用来设置名字。

                if (this.Name != _Name) {

                    this.fireEvent('NameChange', this, this.Name, _Name);     //触发事件的地方。

                    this.Name = _Name;

                }

            },

            print: function() { //重写了父类Person的print方法。

                alert(String.format("姓名:{0} -- 性别:{1} --- 我的职业是:{2}", this.Name, this.Sex, this.job));  

            }

        });

       以下是调用的测试代码

        var st = new Ma.Student({ Name: '小花', Sex: '女' });   

        st.on("NameChange", function(sender, oldName, newName) {    //名字改变时的处理程序

            alert(String.format("原来的名字:{0} --- 新的名字:{1} --- 触发的对象:{2}", oldName, newName, sender));

        });

        st.setName("杰克老狼"); //设置名字

        st.print();                          //调用Student类的print函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值