`
923723914
  • 浏览: 639953 次
文章分类
社区版块
存档分类
最新评论

ExtJS2的继承

 
阅读更多

版本Ext2.02提供了一个extend函数实现继承,该函数会将父类的prototype里的所有字段和方法复制到子类的prototype里,重定义的字段或方法会override父类的同名方法。今天要扩展HtmlEditor类,但不知怎样才能调用父类的方法,由于刚接触Ext2,研究了很久才想到下面的方法。比如:

Ext.A=function()......{
this.s1="S1";
}

Ext.A.prototype
=......{
s2:
"msg",
show:
function(str)......{
alert(str);
}
,
doShow:
function()......{
this.show('AAAAAAAA');
}

}


//继承Ext.A
Ext.B=Ext.extend(Ext.A,...{
vk:
"viking",
show:
function(str)...{
alert(
'BBBBBBBBB'+str+this.s2 + this.s1);
}

}
);

varb=newExt.B();
b.doShow();

b中不能访问类A中的show,如果要执行A中show有两种方法:

  1. 把A.show的代码复制到B.show中。最笨,这样的话还要继承干嘛!
  2. 使用函数createSequence。该函数Ext内建Function类的方法,用法看实例。

Ext.A=function()...{
this.s1="S1";
}

Ext.A.prototype
=...{
s2:
"msg",
show:
function(str)...{
alert(str);
}
,
doShow:
function()...{
this.show('AAAAAAAA');
}

}


Ext.B
=Ext.extend(Ext.A,...{
vk:
"viking",
show:Ext.A.prototype.show.createSequence(
function(str)...{
alert(
'BBBBBBBBB'+str+this.s2);
alert(
this.s1);
//Ext.B.supperclass.show();
}
)
}
);

Ext.C
=Ext.extend(Ext.B,...{
show:Ext.B.prototype.show.createSequence(
function(str)...{
alert(
'CCCCCCCCC'+str+this.vk+this.s2);
}
)
}
)
varc=newExt.C();
c.doShow();

执行c.doShow()会调用A.show()、B.show()、C.show()。如此就可以避免复制父类的代码,实现对父类方法的功能扩展。如果有其他更好的方法,麻烦告诉我!

分享到:
评论

相关推荐

    extjs组建继承结构图

    extjs组建继承结构图 让你了解extjs的整个架构!

    ExtJS viewModel继承

    ExtJS6 viewModel继承 viewModel各级控件继承演示,动态改变viewModel 详见文章解释 https://blog.csdn.net/ZYD45/article/details/87867454

    Extjs继承结构图.png

    Extjs 组件继承结构图,亲手整理,可用于Extjs学习时快速理清组件之间的关系

    ExtJS4中文教程2 开发笔记 chm

    ExtJS 4 DirectStore post参数的变化以及应对方法 ExtJS 4 实例之数据包 ExtJS 4中动态加载的路径设置 Extjs4 API文档阅读(一)——类系统(Class System) Extjs4 API文档阅读(三)——布局和容器 Extjs4 API文档阅读...

    Extjs 性能优化 High Performance ExtJs

    本文适合有一定javascript基础(明确js的面向对象,继承,作用域等)并能熟练使用extjs框架(明确各组件间的继承关系)的人阅读,目的在于对extjs的前台架构进行性能上的优化,核心思想为:“按需索取,晚使用,晚加载...

    ExtJS如何自定义图片按钮组件

    2.此图片按钮背景完全为图片,没有边框,需要使用者提供2张图片,一张初始化用,一张点击后用,可在'imgPaths:'属性里填写,格式为'01.jpg~02.jpg' 3.解压后请将所有附件放置您extjs包examples文件夹里任意一个组件包...

    深入浅出ExtJS第2版

    深入浅出ExtJS第2版+源码..1 下载EXT发布包 1 1.2 如何查看EXT自带的API和示例 1 1.3 为什么有些示例必须放在服务器上 才能看到效果 2 1.4 Hello World 2 1.4.1 直接使用下载的发布包 2 1.4.2 在项目中使用EXT...

    ExtJs4.2实战项目

    整个项目是作者本人在实际工作中完成的项目部分功能,项目中设计的的技术: ...2.ExtJs 日期控件的重写与列表表头菜单控件的重写 3.ExtJs 结合Jquery修改样式和自定义样式 4.JavaScript 伪继承的实现

    精通JS脚本之ExtJS框架.part2.rar

    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 常用插件...

    Extjs精华版图书管理系统源码_商业源码_sqlserver_ExtJS6._extjs_V2_

    3、演示插件使用和封装插件、面向对象继承等等。4、演示更换皮肤功能。 5、演示json数据封装。6、演示前台和后台数据的传递。7、演示权限管理。8、系统已经后台管理的基本架构,适合二次开发。注意事项:1、开发环境...

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

    NULL 博文链接:https://huiqinbo.iteye.com/blog/2219592

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

    Extjs中使用extend(js继承) 的代码,抄<深入浅出Extjs>书

    Extjs源码之--Ext事件机制/继承关系

    NULL 博文链接:https://lovebeyond.iteye.com/blog/1197784

    ExtJS4中使用mixins实现多继承示例

    在ExtJS4中使用mixins来实现多继承。具体例子代码如下: 代码如下: (function(){ Ext.onReady(function(){ Ext.define(‘say’,{ canSay:function(){ alert(“hello”); } }); Ext.define(‘eat’,{ caneat:...

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

    这里接口的意思是Observable实际上起了一个抽象类的作用,Extjs中有大量的组件都是继承自这个类的。这个类提供了一些基本的方法比如addEvents,addlistener,fireEvent等等。本文暂时不介绍如何使用extjs的组件响应...

    extjs4自定义深蓝色主题

    之前项目使用的一个深蓝色主题,继承自extjs4原生classic主题。 先引入ext-ux-all.css,再引入fixed.css

    Yii2ExtJs5RBAC.zip

    Yii2 ExtJs5 RBAC 支持 ACL RBAC。安装安装这个扩展的首选方式是通过composer。执行composer require --prefer-dist myweishanli/yii2-extjs-rbac或添加"myweishanli/yii2-extjs-rbac": "~1.0.0"配置@app/config...

    EXTJS4 Actioncolumn不能使用文字的部分解决办法

    就是extjs4里面,想给grid里面一格中,文字后面加个小图标。 因为俺们项目就只是文字+图标,所以俺就没有复写Actioncolumn,而是从Column下面继承了一下。。 包含自定义插件源码、效果图等等。

    【原创】基于Extjs4的城市选择器插件

    简述插件各个结构的组成部分和运行机制,最上层的是继承自Extjs自身的一个picker类,piker包含了一个tabpanel,tabpanel有山个子项即省、市、县3个tab选项卡。 从外往里说,extjs所有的这种选择器都是继承自picker类...

Global site tag (gtag.js) - Google Analytics