`
wmch
  • 浏览: 72632 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

ext 继承(extend) 理解练习

阅读更多

<script type="text/javascript">

Ext.onReady(function(){

    function config() {
             this.id = 5;  
            this.name = 'myclass';
            this.age = 15;
        };
        
    A = function (config) {
        this.id = config.id;
    }
    A.prototype.sayHello = function(){
        alert("function from class A!");
    }
    
    
    /*
    子类有自己定义的构造函数
    超类A的属性(id)没有被B继承过来。
    因为Ext.extend()函数里面的if(typeof sp == 'object'){…}不成立,在继承之后,子类B仅仅获得了超类的sayHello()方法。
    */
    
    B = function(config){
        this.name = config.name;
    }
    
    B = Ext.extend(B,A);
//    new B(new config()).sayHello();
//    alert(new B(new config()).id);
    
    /*
    不提供子类自己的构造函数
    这样的话子类C可以顺利地获得超类A的id属性和sayHello()方法
    */
    C = Ext.extend(A,{
        id:77,
        who:'c Class'
    });
//    alert(new C(new config()).id);
//    alert(new C(new config()).who);
//    new C(new config()).sayHello();
    
    /*
    在overrides里面提供constructor
    必须加一句调用:this.superclass.constructor.call,这句实际上是调用父类的构造器来使子类获得父类里面定义的参数和方法。
    但是这么做有一点不是很爽,例如我要自定义一个MyPanel来继承Ext.Panel,如果我想采用第三种写法,自己提供的overrides里面必须有如上的手工调用的语句。如果继承的层次稍微深一点,那么每次继承都要写同一句话,这显然是很不爽快的事情。
    */
    
    D = function(config){
        this.age = config.age;
        D.superclass.constructor.call(this,config);

    }
    Ext.extend(D,A,{});
    
    alert(new D(new config()).id);
    alert(new D(new config()).age);
    new D(new config()).sayHello();

 

    var d = new D({
        age:45,
        id:88
    });
   
    alert(d.id);
    alert(d.age);
    d.sayHello();
    
});
</script>

分享到:
评论

相关推荐

    Ext继承分析

    在ExtJS中,`Ext.extend()` 是一个核心的函数,用于实现类之间的继承机制。它允许你创建新的类(子类),这些类将继承另一个类(父类)的属性和方法。这个功能对于构建复杂的JavaScript应用程序至关重要,因为它提供...

    Ext继承和扩展

    然而,`Ext`库提供了一个更优雅、更易于理解和维护的方式来处理继承,这包括`Ext.extend()`方法和`Ext.create()`函数。 ### `Ext.extend()` `Ext.extend()`是`Ext`库中用于创建子类的核心方法。它接受三个参数:...

    ext继承重写

    这些实例可以帮助开发者深入理解EXT JS的继承机制,并熟练运用到实际项目中,提高代码的复用性和可维护性。 总结起来,EXT JS的`extend`机制让我们能够构建一个类层次结构,有效地组织和管理代码,而方法的重写则...

    Ext继承和扩展写的例子。

    在这个特定的例子中,我们关注的是"Ext继承和扩展",这是Ext JS中两个核心的概念,它们对于理解和创建自定义组件至关重要。 1. **Ext继承**: 在面向对象编程中,继承是类之间的一种关系,允许一个类(子类或派生...

    ext面向对象和继承

    EXTJS中的继承是通过`Ext.extend()`或`Ext.createByAlias()`实现的。继承允许子类重写或扩展父类的方法和属性。例如,我们可以创建一个新的按钮类,继承自EXTJS的`Ext.button.Button`: ```javascript MyButton = ...

    Ext一些方法的重写

    `Ext.extend()` 是`Ext`库中的一个核心函数,它用于创建类的继承链。在JavaScript这种没有类的语言中,`Ext.extend()` 提供了面向对象编程的模拟。当我们想要自定义一个新类,并希望它继承自另一个已有类时,可以...

    无废话ExtJs 系列教程十八[继承:Extend]

    继承在ExtJS中的实现主要基于`Ext.extend()`方法,这个方法是ExtJS提供的一个静态方法,它允许一个类(子类)继承另一个类(父类)的所有属性和方法。通过`Ext.extend()`,我们可以定义新的类,同时保留和扩展已存在...

    ExtJS的extend(Ext Designer的使用)

    总结来说,`extend`是Ext JS中构建组件和类继承结构的核心机制,而Ext Designer通过提供可视化界面,使开发者能够更加直观地理解和利用这一机制。通过`extend`,我们可以创建出符合特定需求的自定义组件,同时保持...

    EXT dojochina Ext类继承.rar

    1. **Ext.extend()**:这是EXTJS中最基础的类继承方法。通过调用`Ext.extend(baseClass, subClass, overrides)`,可以创建一个新的子类,其中`baseClass`是父类,`subClass`是新创建的子类名称,`overrides`是一个...

    EXT dojochina Ext类静态方法.rar

    例如,`Ext.extend(MyClass, Ext.Panel, {myMethod: function() {...}})`创建了一个新类MyClass,它继承自Ext.Panel,并添加了一个名为myMethod的方法。 - `Ext.apply()`: 这个静态方法用于合并对象的属性,通常...

    Extjs中使用extend(js继承) 的代码

    在Ext JS框架中,Ext.extend是用来实现JavaScript继承的一种方法。Ext JS是一个用于开发富交互式的Web应用程序的框架,它封装了复杂的DOM操作,提供了一套丰富的UI组件。在使用Ext JS开发时,使用Ext.extend可以创建...

    jQuery继承extend用法详解

    总结起来,理解jQuery的extend方法对于使用jQuery进行高效的DOM操作、事件处理、以及页面动态内容的管理是非常有帮助的。通过扩展功能,开发者能够以更少的代码和更清晰的结构,快速实现复杂的功能。这不仅简化了...

    ext多选下拉列表的全选功能实现

    "ext多选下拉列表的全选功能实现"这个主题聚焦于一个特定的UI组件——ExtJS库中的MultiComboBox,这是一种允许用户多选的下拉列表控件。在实际应用中,全选功能常常被用来快速选择所有选项,极大地提高了用户的操作...

    ext api,ext 学习笔记,SWFUpload_多文件上传及部分工具

    EXT的extend函数是实现类继承的关键,通过它,可以创建新的组件类并继承已有组件的属性和方法。JavaScript对象的理解则有助于更好地利用EXT的动态性。 "spket-1.6.11.jar"可能是一个开发工具,如Spket IDE,它提供...

    EXT文档 不下后悔.doc

    EXT文档对于理解和使用EXT框架至关重要,它提供了EXT的组件结构、配置、资源管理和类继承等核心概念的详细说明。开发者可以借助这些知识创建高效、美观且功能丰富的Web应用。在开发过程中,根据实际情况选择适当的库...

    EXtJS学习 EXtJS学习

    EXTJS 学习:深入理解 `Ext.extend` 及其在继承中的陷阱 EXTJS 是一个强大的 JavaScript 框架,用于构建富客户端应用程序。它提供了丰富的组件库和强大的数据绑定机制。在 EXTJS 中,`Ext.extend` 是核心的继承机制...

    Ext.Store的获取方法

    但在使用`extend`进行类继承时,可能会将Store的定义放在一个新的组件内,例如一个ComboBox: ```javascript Leangle.form.combo.ColorComboBox = Ext.extend(Leangle.form.BaseComboBox, { // ComboBox ...

Global site tag (gtag.js) - Google Analytics