`

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>
分享到:
评论

相关推荐

    ext面向对象和继承

    **面向对象基础** 面向对象的核心概念包括类(Class)、对象(Object)、继承(Inheritance)和多态(Polymorphism)。在EXTJS中,类通常通过`Ext.extend()`方法来定义,它创建了一个新的类,并继承自指定的父类。...

    轻松搞定Extjs 带目录

    本书作为Extjs的中文教程,旨在帮助读者快速上手Extjs,其内容涉及Extjs的基础知识和实际应用。 #### 2. JavaScript基础知识 - **类的定义**: Extjs中的类继承于JavaScript原生类,通过Ext.extend来定义。这是...

    传智播客EXTJS视频下载地址

    - **资源推荐**:《传智播客成都中心JavaScript面向对象及ExtJS基础视频》中的AJAX章节(PPT格式),通过实例讲解了如何使用ExtJS进行AJAX调用。 2. **浏览器对象模型(BOM)**:这部分资料讲解了浏览器对象模型的...

    EXTJS视频教程说明

    教程首先会介绍JavaScript的基础知识,因为EXTJS是基于JavaScript的。JavaScript是一种广泛应用于网页开发的脚本语言,主要负责网页的动态效果和用户交互。与Java不同,Java是一种通用的面向对象的编程语言,通常...

    php+ExtJS 开发实战

    面向对象编程(OOP)是ExtJS框架的核心设计理念之一。通过采用面向对象的方法,开发者可以更好地组织代码结构,提高代码的复用性和维护性。 - **类与继承**: 在ExtJS中,可以通过定义类来创建组件,并通过继承机制...

    extJS 一些简单实例

    在源码方面,ExtJS 使用面向对象的编程方式,基于类的体系结构使得代码组织清晰且易于维护。例如,你可以定义一个自定义组件,继承自`Ext.Component`,并重写或扩展其方法和配置项来满足特定需求。 工具集是ExtJS的...

    ExtJS-3.0.0.rar

    了解这些基础知识是学习任何JavaScript框架的前提。 **面向对象编程** JavaScript支持面向对象编程(OOP),尽管它不是一种完全的面向对象语言。你可以通过构造函数创建对象,使用原型链实现继承,以及封装和多态等...

    JavaScript和ExtJS及Ajax基础教程

    总结来说,这个教程组合提供了全面的JavaScript基础知识、ExtJS框架的详细教程以及Ajax技术的实践指导,非常适合想要进入Web前端开发领域的学习者。通过学习这些资料,你可以建立起坚实的基础,进一步提升你的Web...

    轻松搞定Extjs

    《轻松搞定Extjs》是一本旨在帮助读者快速掌握Extjs框架基础知识及其高级应用的教程书籍。本书通过详尽的内容安排,从预备知识到具体实践案例,全方位地介绍了Extjs的核心特性与开发技巧。 #### 准备与资源 在开始...

    ExtJS中文手册.pdf

    - **继承机制**:ExtJS支持面向对象编程中的继承特性,可以扩展现有的组件类。 - **继承示例**:文档中给出了一些具体的继承示例,帮助理解继承的用法。 #### 22. 补充资料 - **Ext2概述**:介绍了ExtJS 2版本的...

    js语法之extjs

    因此,Extjs提供了对类的封装以增强面向对象特性。 ##### 2.1 类的定义 类的定义通过`Ext.define`进行: ```javascript Ext.define("My.test.Animal", { // 类成员变量 height: 0, weight: 0 }); Ext.define...

    extjs简单例子

    这涉及到面向对象编程的概念,如继承、覆写方法和属性,以及如何利用ExtJS的类系统来实现模块化和代码复用。 3. **《TutorialTabPanel Basics (Chinese)》** TabPanel是ExtJS中的一个常见组件,用于展示多个视图在...

    extJS4 MVC demo项目入门

    在学习extJS4 MVC时,开发者还应掌握JavaScript面向对象编程的思想,以及如何高效利用extJS提供的各种组件和插件来构建用户界面。最后,通过项目实践不断优化和重构代码,提高应用的性能和用户体验。

    一个简单的extjs+ssh实例

    Spring作为依赖注入容器,管理对象之间的关系,同时提供了AOP(面向切面编程)和数据访问支持;Hibernate则是ORM(对象关系映射)工具,简化了数据库操作。 ExtJS则是一款基于JavaScript的前端框架,用于构建富...

Global site tag (gtag.js) - Google Analytics