zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    bzoj 1176 cdq分治套树状数组
    Codeforces 669E cdq分治
    Codeforces 1101D 点分治
    Codeforces 1100E 拓扑排序
    Codeforces 1188D Make Equal DP
    Codeforces 1188A 构造
    Codeforces 1188B 式子转化
    Codeforces 1188C DP 鸽巢原理
    Codeforces 1179D 树形DP 斜率优化
    git commit -m "XX"报错 pre -commit hook failed (add --no-verify to bypass)问题
  • 原文地址:https://www.cnblogs.com/yanni/p/3252912.html
Copyright © 2011-2022 走看看