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>
  • 相关阅读:
    【python安装】错误——“User installations are disabled via policy on the machine”
    “金字塔原理”-写作
    【sublime】Pretty Json插件的安装与配置使用
    VMware卸载后再安装时网络连接处没有虚拟网卡
    2019-2020-2《网络对抗技术》Exp4 恶意代码分析
    2020课程设计 Week1 Asn.1格式的学习
    基于BouncyCastle的asn.1分析工具设计与实现的任务理解与分工
    2019-2020-2《网络对抗技术》Exp3 免杀原理与实践
    2019-2020-2 《网络对抗技术》Exp2 后门原理与实践
    2019-2020-2《网络对抗技术》Exp1 PC平台逆向破解
  • 原文地址:https://www.cnblogs.com/yanni/p/3252912.html
Copyright © 2011-2022 走看看