Ext中extend函数使用
假设有个function名为SuperClass,要实现一个子类,名为MyClass。下面的两种方式都可以实现这个功能。
(1)MyClass = Ext.extend(SuperClass, { /* */ });
(2)Ext.extend(MyClass, SuperClass, { /* */});
在MyClass中,要有MyClass.superclass.constructor.call(this);//这句话,会先执行,然后在执行子类方法的时候,先去找覆盖的,然后找父类的?
Extend函数中,第三个参数里面的函数被放置在了子类的prototype中。通过对JavaScript的原型继承的了解,可以知道,实例变量的优先级是高于prototype的。所以,父类需要被重写的方法,不能作为一个变量存在,因为在
MyClass.superclass.constructor.call(this);
这句代码的时候,这个变量成了子类的变量,而不是在子类的prototype中,通过extend不能达到重写的目的。
注:怎么感觉这种继承方法,有点像是设计模式中的适配器模式,而其实对象适配器。
<!--EndFragment-->
分享到:
相关推荐
在`Ext.extend`的使用中,一般包含三个参数: 1. 子类构造函数:这是一个新类的定义,通常是你想要创建的派生类。 2. 父类构造函数:这是你要继承的基类。 3. 扩展对象:一个包含额外方法或属性的对象,这些会被添加...
通常,这样的代码示例会包含具体的类定义、方法重写以及如何在应用中使用这些自定义类。 除了`Ext.extend()`,`Ext`库还提供了一些其他与继承和方法重写相关的工具,比如`mixins`(混入)机制,它允许一个类“借用...
`extend`的使用还涉及到`config`对象,这是Ext JS中的另一个重要概念。`config`用来定义类的可配置属性,这些属性可以在实例化时传入值。通过`extend`和`config`,我们可以构建出高度可定制且复用性强的组件。 在...
这里,我们聚焦于`ext`继承,通常指的是JavaScript中的`extend`方法,这是一种实现继承的方式。在JavaScript中,由于语言本身没有内置的类机制,所以开发者通过函数和原型链来模拟类的概念。 `extend`方法通常被...
`scope`参数用于设置`fn`函数中的`this`上下文。 这些函数是Ext.js库的基础,理解它们有助于更有效地开发基于Ext.js的应用程序。通过熟练运用这些工具,开发者可以构建复杂的用户界面,管理数据,以及处理事件和...
"第一章 必须理解Ext_extend函数.mht"和"EXT JS组件事件.mht"可能深入讨论了EXT的扩展机制和组件事件处理,是EXT开发的重要基础。 "EXT 中文手册.pdf"则是EXT的官方中文文档,是学习EXT API的权威参考资料,包含...
`Cb`是回调函数,`scope`是回调函数中`this`的指向,`args`是传递给回调函数的参数,`delay`是延迟执行的时间(单位是毫秒)。 9. `Ext.getDom(id|el)`: 这个函数根据提供的ID、DOM节点或Ext.Element对象返回对应...
这篇博客文章“在EXT中使用FCKEditor编辑器例子”可能探讨了如何将FCKEditor集成到EXT应用中,为用户提供一个方便的文本编辑界面。 在EXT中集成FCKEditor,首先你需要理解EXT的基本概念,如组件(Component)、布局...
EXT dojochina Ext类静态方法是一个关于EXT框架在JavaScript中的使用的主题,主要聚焦于Ext类的静态方法。EXT是一个强大的前端开发框架,由Sencha公司开发,它提供了丰富的组件库,用于构建复杂的Web应用程序。在EXT...
在这种情况下,当我们尝试访问`c.s`时,会得到`undefined`,因为`s`是在`S`的构造函数中通过`this`定义的,而不是在`S.prototype`上。只有在父类原型上的属性才会被继承。 了解`Ext.extend()`的工作原理后,我们...
extend()是jQuery中一个重要的函数,作用是实现对对象的扩展, 它经常用于jQuery插件的开发,jQuery内部也使用它来扩展属性方法,如上篇文章中讲到的noConflict方法,就是用extend方法来扩展的。 在jQuery的API手册...
1. **Ext.extend函数**:Ext.extend是Ext.js库中一个至关重要的函数,它实现了JavaScript的类继承。通过对原生对象的扩展,可以创建具有特定行为的新类。这个函数不仅让代码更加模块化,还支持多态性,使得开发者...
然而,`Ext`库提供了一个更优雅、更易于理解和维护的方式来处理继承,这包括`Ext.extend()`方法和`Ext.create()`函数。 ### `Ext.extend()` `Ext.extend()`是`Ext`库中用于创建子类的核心方法。它接受三个参数:...
- 在Grid的`renderer`函数中,我们可以获取到对应的图片URL,然后生成一个`<img>`标签并插入到单元格内。 4. **示例代码** ```javascript Ext.extend(Ext.grid.Column, { renderer: function(value, meta, ...
使用`extend`关键字来指定父类,如`Ext.extend('SubClass', 'SuperClass')`。 7. **类实例方法重写**:在子类中,可以重写父类的实例方法,以实现不同的功能。在Ext中,你可以直接在子类中定义相同的方法名来实现...
1.$.extend({},defaults, options) 这样做的目的是为了保护包默认参数。也就是defaults里面的参数。 做法是将一个新的空对象({})做为$.extend的第一个参数,defaults和用户传递的参数对象紧随其后,这样做的好处是...
然后,定义一个子类(subClass),子类的构造函数中首先通过`BaseClass.call(this);`来调用基类的构造函数,实现数据的初始化。接着,通过`subClass.prototype = new BaseClass();`这一句来实现原型链继承,子类的...
这可以通过在父类的构造函数中初始化数组,或者在子类的 `init` 方法中调用父类的 `init` 方法来完成: ```javascript var BaseClass = Ext.extend(Ext.util.Observable, { arr: null, init: function() { this....