Ext.extend方法是用来实现类的继承。
extend(Object subclass,Object superclass,[Object overrides] : Object
第一个参数:子类
第二个参数:父类
第三个参数:要覆盖的属性。
这里需要强调一下,子类继承下来的是父类中通过superclass.prototype方式定义的属性(包括用此方法定义的函数)。
例子如下:
-
<script type="text/javascript">
-
function S(){
- }
-
S.prototype.s = "s";
-
S.prototype.s1 = "s1";
-
function C(){
-
this.c = "c";
-
this.c1 = "c1";
- }
-
Ext.extend(C,S,{s1:"by c overload"});
-
var c = new C();
-
alert(c.s);
-
alert(c.s1);
-
</script>
-
<script type="text/javascript">
-
function S(){
- }
-
S.prototype.s = "s";
-
S.prototype.s1 = "s1";
-
function C(){
-
this.c = "c";
-
this.c1 = "c1";
- }
-
Ext.extend(C,S,{s1:"by c overload"});
-
var c = new C();
-
alert(c.s);
-
alert(c.s1);
- </script>
<script type="text/javascript">
function S(){
}
S.prototype.s = "s";
S.prototype.s1 = "s1";
function C(){
this.c = "c";
this.c1 = "c1";
}
Ext.extend(C,S,{s1:"by c overload"});
var c = new C();
alert(c.s); //s
alert(c.s1); //by c overload
</script>
如果按下面这个方式写就会提示c.s没有定义(undefind):
-
<script type="text/javascript">
-
function S(){
-
this.s = "s";
-
this.s1 = "s1";
- }
-
function C(){
-
this.c = "c";
-
this.c1 = "c1";
- }
-
Ext.extend(C,S,{s1:"by c overload"});
-
var c = new C();
-
alert(c.s);
-
alert(c.s1);
-
</script>
-
<script type="text/javascript">
-
function S(){
-
this.s = "s";
-
this.s1 = "s1";
- }
-
function C(){
-
this.c = "c";
-
this.c1 = "c1";
- }
-
Ext.extend(C,S,{s1:"by c overload"});
-
var c = new C();
-
alert(c.s);
-
alert(c.s1);
- </script>
<script type="text/javascript">
function S(){
this.s = "s";
this.s1 = "s1";
}
function C(){
this.c = "c";
this.c1 = "c1";
}
Ext.extend(C,S,{s1:"by c overload"});
var c = new C();
alert(c.s); //undefind
alert(c.s1); //by c overload
</script>
也可以通过如下方式来实现类的继承
-
<script type="text/javascript">
-
function S(){
- }
-
S.prototype.s = "s";
-
S.prototype.s1 = "s1";
-
C = Ext.extend(S,{s1:"by c overload"});
-
var c = new C();
-
alert(c.s);
-
alert(c.s1);
-
</script>
-
<script type="text/javascript">
-
function S(){
- }
-
S.prototype.s = "s";
-
S.prototype.s1 = "s1";
-
C = Ext.extend(S,{s1:"by c overload"});
-
var c = new C();
-
alert(c.s);
-
alert(c.s1);
- </script>
<script type="text/javascript">
function S(){
}
S.prototype.s = "s";
S.prototype.s1 = "s1";
C = Ext.extend(S,{s1:"by c overload"});
var c = new C();
alert(c.s); //s
alert(c.s1); //by c overload
</script>
此时,C是子类,S是父类
<script type="text/javascript"><!--
google_ad_client = "pub-4348265167276910";
/* 468x60, 个人博客 */
google_ad_slot = "2046406163";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script><script src="http://pagead2.googlesyndication.com/pagead/expansion_embed.js"></script><script src="http://googleads.g.doubleclick.net/pagead/test_domain.js"></script><script src="http://pagead2.googlesyndication.com/pagead/render_ads.js"></script><script>google_protectAndRun("render_ads.js::google_render_ad", google_handleError, google_render_ad);</script>
分享到:
相关推荐
关于这个原因有很多种,我只说下我遇到的 我这样 写Store来复用的 代码如下: DocStore = Ext.extend(Ext.data.Store,{ initComponent:function(){ this.proxy = new Ext.data.HttpProxy({url:this.url}); this....
extend:'Ext.container.Container', ... }); ``` 这行代码定义了一个名为`WebApp.view.tip.ToolTip`的新类,该类继承自`Ext.container.Container`。这意味着我们可以使用所有容器类的功能。 2. **布局配置**:...
可以通过`Ext.extend()`方法实现这一点。 ```javascript Ext.define('MyApp.form.field.ClearableDate', { extend: 'Ext.form.field.Date', alias: 'widget.clearabledatefield', // 添加其他配置项... }); ``...
在ExtJS中,我们可以通过`Ext.extend()`或使用`Ext.define()`方法创建一个新的类,该类继承自现有类并可以添加新的属性和方法。对于ExtJS Grid,我们可能要扩展其基础配置,比如自定义列、行渲染器、编辑器,甚至是...
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 {}). ...
"ext多选下拉列表的全选功能实现"这个主题聚焦于一个特定的UI组件——ExtJS库中的MultiComboBox,这是一种允许用户多选的下拉列表控件。在实际应用中,全选功能常常被用来快速选择所有选项,极大地提高了用户的操作...
在上述例子中,我们看到一个关于 `Ext.extend` 使用的一个有趣的陷阱。问题在于,当子类继承父类并试图修改一个共享的数组成员时,它们实际上是在操作同一数组的引用,而不是各自独立的副本。这导致了不同实例之间的...
`Ext.extend()` 是 ExtJS 提供的面向对象继承机制,允许你创建新的类或者扩展已有的类。在 Ext2.x 及更早版本中,它是扩展内置类的主要方式。即使在 Ext2.x 之后,理解 `Ext.extend()` 仍然是很重要的,因为它在许多...
14.1 利用Ext.extend实现继承 14.2 与ExtJS扩展相关的预备知识 14.2.1 定义命名空间 14.2.2 使用xtype 14.3 用户扩展和插件 14.3.1 编写自定义用户扩展 14.3.2 常用插件UploadDialog 14.3.3 常用插件...
14.1 利用Ext.extend实现继承 14.2 与ExtJS扩展相关的预备知识 14.2.1 定义命名空间 14.2.2 使用xtype 14.3 用户扩展和插件 14.3.1 编写自定义用户扩展 14.3.2 常用插件UploadDialog 14.3.3 常用插件...
在 ExtJS3 中,我们可以使用 Ext.extend 来定义类,而在 ExtJS4 中,我们需要使用 Ext.define 来定义类。例如,在 ExtJS3 中,我们可以使用以下代码来定义一个类: ```javascript Ext.ux.PostStore = Ext.extend...
Ext.extend(Ext.layout.container.MyIFrameLayout, Ext.layout.container.Fit, { onLayout: function(ct, target) { var iframe = ct.items.first(); if (iframe && iframe.rendered) { var iframeBody = ...
这篇博客文章可能是关于如何在Ext Designer中利用`extend`来设计和自定义UI组件的教程。 首先,我们要理解`extend`在Ext JS中的工作原理。`extend`关键字用于声明一个类是另一个类的子类。这在JavaScript中实现了类...
extend: 'Ext.panel.Panel', alias: 'widget.myDynamicPanel', // 这里可以添加其他配置 }); Ext.define('MyHtmlPanel', { extend: 'Ext.panel.Panel', alias: 'widget.myHtmlPanel', html: '这是通过xtype...
继承在ExtJS中的实现主要基于`Ext.extend()`方法,这个方法是ExtJS提供的一个静态方法,它允许一个类(子类)继承另一个类(父类)的所有属性和方法。通过`Ext.extend()`,我们可以定义新的类,同时保留和扩展已存在...
extend: 'Ext.window.Window', height: 400, width: 700, title: '文件上传', closeAction: 'hide', maximizable: true, layout: 'fit', uploadParams: null, initComponent: function() { var me = ...
- `Ext.extend(subClass, superClass[, overrides])`:创建一个新的子类,继承自指定的父类。 #### 二、Array类(第4页) - **概述**:Array类提供了处理JavaScript数组的增强功能。 - **常用方法**: - `Ext....
extend: 'Ext.util.Plugin', alias: 'plugin.closeTabOnDoubleClick', init: function(tabPanel) { tabPanel.on('itemdblclick', this.onTabDoubleClick, this); }, onTabDoubleClick: function(tabPanel, ...
在ExtJS中,`Ext.extend()` 是一个核心的函数,用于实现类之间的继承机制。它允许你创建新的类(子类),这些类将继承另一个类(父类)的属性和方法。这个功能对于构建复杂的JavaScript应用程序至关重要,因为它提供...