`
y1d2y3xyz
  • 浏览: 257579 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

extjs源码分析-006(Ext.override/Ext.extend)

阅读更多
        override : function(origclass, overrides){//方法重载,不存在就添加,存在就覆盖原有方法
            if(overrides){
                var p = origclass.prototype;
                Ext.apply(p, overrides);//调用apply继承
                if(Ext.isIE && overrides.hasOwnProperty('toString')){
                    p.toString = overrides.toString;
                }
            }
        },
        extend : function(){//Ext继承并扩展
            // inline overrides
            var io = function(o){//把所以属性复制给io
                for(var m in o){
                    this[m] = o[m];
                }
            };
            var oc = Object.prototype.constructor;//Object的构造函数

            return function(sb, sp, overrides){
                if(typeof sp == 'object'){//当父类为object对象
                       overrides = sp;//需要继承的
                    sp = sb;
                 //为继承类设置构造函数
                    sb = overrides.constructor != oc ? overrides.constructor : function(){sp.apply(this, arguments);};
                }
                var F = function(){},
                    sbp,
                    spp = sp.prototype;

                F.prototype = spp;
                sbp = sb.prototype = new F();
                sbp.constructor=sb;
                sb.superclass=spp;
                if(spp.constructor == oc){
                    spp.constructor=sp;
                }
                sb.override = function(o){
                    Ext.override(sb, o);
                };
                sbp.superclass = sbp.supr = (function(){
                    return spp;
                });
                sbp.override = io;
                Ext.override(sb, overrides);
                sb.extend = function(o){return Ext.extend(sb, o);};
                return sb;
            };
        }()
分享到:
评论

相关推荐

    ExtJs 带清空功能的日期组件

    Ext.override(MyApp.form.field.ClearableDate, { reset: function() { this.setValue(null); this.callParent(); } }); ``` 4. **使用新组件**: 在表单中,我们可以像使用普通DateField一样使用我们的...

    EXT JS 3.0 Core Class Diagram

    - `Ext.extend()`: 创建新的类(构造函数),继承自父类。 - `Ext.fy()`: 将元素转换为`Ext.Element`对象。 - `Ext.get()`: 获取DOM元素。 - `Ext.id()`: 生成唯一的ID。 - `Ext.isArray()`, `Ext.isBoolean()`...

    Extjs4---grid的修改、删除功能---结合struts2、hibernate

    extend: 'Ext.data.Model', fields: ['id', 'name', 'email'] }); // 定义Store var store = Ext.create('Ext.data.Store', { model: 'User', proxy: { type: 'ajax', url: 'user-grid-data.action', // ...

    Ext.ux.UploadDialog

    Most configuration options are inherited from Ext.Window (see ExtJs docs). The added ones are: url - the url where to post uploaded files. base_params - additional post params (default to {}). ...

    Extjs中文教程

    - 通过`Ext.extend`和`Ext.override`方法可以实现类的继承和重写。 - **配置(config)选项** - 配置选项是Extjs组件的核心,用于设置组件的各种属性和行为。 - 通常在组件构造函数中通过传递一个配置对象来指定...

    Ext继承和扩展

    在ExtJS中,继承是通过`Ext.extend()`方法实现的,这使得我们能够创建自定义组件,这些组件具有现有组件的特性,并可以添加额外的功能或修改行为。 例如,假设我们有一个基本的`Panel`类,我们可以通过以下方式创建...

    extjs核心api详解

    **Ext** 类提供了许多有用的静态方法,可以帮助开发者更方便地操作DOM、数据结构等,并且它也是ExtJS框架的基础。 ##### addBehaviors(Object obj) 该方法用于给指定的DOM元素添加事件监听器。事件名称后缀以`@`...

    extjs表格文本启用选择复制功能具体实现

    Ext.override(Ext.view.Table, { afterRender: function() { var me = this; me.callParent(); me.mon(me.el, { scroll: me.fireBodyScroll, scope: me }); if (!me.featuresMC && (me.featuresMC.findIndex...

    Extjs4 类的定义和扩展实例

    在ExtJS4中,可以通过`Ext.override`方法来重载(override)已有的类,并添加新的方法或覆盖原有方法。需要注意的是,使用`override`添加的函数必须用特定的方式来声明。 #### 使用override方法扩展类 通过`Ext....

    Ext js2.1 最新资料汇总

    ### Ext JS 2.1 核心 API 详解 #### 1. `addBehaviors(Object obj):void` 此方法用于向指定的 DOM 元素添加事件监听器。它接受一个对象作为参数,其中键为事件选择器(selector),值为对应的事件处理函数。 **...

    Extjs学习笔记之八 继承和事件基础

    `Ext.extend`是ExtJS提供的一种继承机制,用于创建类的层次结构,使得子类能够继承父类的特性。 在JavaScript中,构造函数用于初始化新创建的对象。例如,`Person`是一个构造函数,通过`new Person('Tom')`创建了一...

    基于ExtJs在页面上window再调用Window的事件处理方法

    因此,在处理组件时,我们可以通过扩展(extend)、覆盖(override)或者使用监听器(listeners)等方法来处理各种事件和行为。 通过这篇文档,我们可以了解到,在使用ExtJs开发应用时,需要特别注意组件间的数据...

Global site tag (gtag.js) - Google Analytics