Extjs- Ext.extend函数的使用

 Ext.extend在Extjs 中扮演着重大角色,是Extjs中几个重要函数之一。要想深入了解EXTJS,这个函数必须掌握不可,网上有很多关于这个函数的源码分析和介绍。关于这个函数的使用有以下几种情况。

function Base(config) {   this.name=config.name;   this.age=config.age;   this.sex=config.sex; }  function base(config) {  this.identity=config.identity;  this.msg=config.msg;  this.phone=config.phone;    base.superclass.constructor.call(this,config); }  Ext.extend(base,Base,{    showMsg:function(){      window.alert(this.name+' '+this.age+' '+this.sex+' '+this.identity+' '+this.msg+' '+this.phone);    } });

在这种情况下

  1.  

 

     第二种情况是

function Base(config) {  this.name=config.name;  this.age=config.age;  this.sex=config.sex;  } 
var base=Ext.extend(Base,{    showMsg:function(){      window.alert(this.name+' '+this.age+' '+this.sex+' '+this.identity+' '+this.msg+''+this.phone);    } }当 var mybase=new base( /* */); 将会调用Base constructor函数
 

第三种情况

function Base(config) {  this.name=config.name;  this.age=config.age;  this.sex=config.sex;  } 

var base=Ext.extend({ constructor:function(config){    this.identity=config.identity;    this.msg=config.msg;   this.phone=config.phone; }, showMsg:function(){     window.alert(this.name+' '+this.age+' '+this.sex+' '+this.identity+' '+this.msg+''+this.phone);   } }

此时 var mybase=new base( /* */);  将会调用Ext.extend中传入的constructor函数

 

     对Ext.extend使用的三种情况全部分析完了,Extjs中的继承体系都是采用以上三种情况构建成。文章中的文字描述很少。如果你看完些文,不知所解,可以先对Ext.extend函数源码进行分析,在自己多调试几次,再回过头来看,估计一下子就会明白文章意思。画图是使用balsamiq软件。

时间: 2024-07-31 14:19:36

Extjs- Ext.extend函数的使用的相关文章

《ExtJS 3详解与实践》阅读补充资料:Ext.extend()中使用super关键字

  既然一门语言被精简了,无论idea还是直观的语法,都务求精简的话,那么这便无形就是一个趋势,趋势往往不为人们的意志转移地转为自己的习惯,思维定性的习惯,连function这个关键字也有某仁兄觉得太长了,有缩减的必要.当然这只是开玩笑而已了.   好像Lisp那样满天 点号.冒号便是灾难.用过Ext继承的人都清楚,每每调用父类成员的时候就是Ext.subClass.superclass.methodName.call/apply(this).一整串的长,好处也是明显的,起码这种完全命名方式一个

extjs自定义组件函数回调实例介绍

工程里用到了Sencha ExtJs,因为特定的组件原因,导致很多组件得自己.组件定义完成之后的 Success_callback 因为之前没做过,所以这次把它记录下来方便以后查阅.直接上代码: 界面调用  代码如下 复制代码 <script type="text/javascript"> function aaa(){  var student_panel = new WX.student.AddStudent({   //传入回调函数,直接显示.   callback_

ExtJS继承Extend

问题描述 MyGridPanel = Ext.extend(Ext.grid.GridPanel, { constructor: function(config) { // Your preprocessing here MyGridPanel.superclass.constructor.apply(this, arguments); // Your postprocessing here }, your方法: function() { // etc. } });以上是Extjs API关于E

jQuery.extend 函数详解

JQuery的extend扩展方法:       Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解.       一.Jquery的扩展方法原型是: extend(dest,src1,src2,src3...);       它的含义是将src1,src2,src3...合并到dest中,返回值为合并后的dest,由此可以看出该方法合并后,是修改了dest的结构的.如果想要得到合并的结果却又不想修改dest的结构,可以如下使用:

Jquery实现$.fn.extend和$.extend函数_jquery

前面我们扩展了bind方法和ready函数,这次我要讲一下$.fn.extend 和$.extend函数. 其他的不多说,直接切入主题吧! 先来看看这两个函数的区别:   $.fn.extend是为查询的节点对象扩展方法,是基于$的原型扩展的方法   $.extend是扩展常规方法,是$的静态方法. 我们之前写的代码看一下: (function (win) { var _$ = function (selector, context) { return new _$.prototype.Init

jQuery.extend 函数及用法详细_jquery

jquery.extend函数详解 JQuery的extend扩展方法:  Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解. 一.Jquery的扩展方法原型是: extend(dest,src1,src2,src3...); 它的含义是将src1,src2,src3...合并到dest中,返回值为合并后的dest,由此可以看出该方法合并后,是修改了dest的结构的.如果想要得到合并的结果却又不想修改dest的结构,可以如下使用:

模仿JQuery.extend函数扩展自己对象的js代码_javascript技巧

但在写的过程中发现,如果要在之前写好的对象中添加新的静态方法或实例方法,要修改原有的对象结构,于是查看了jquery了extend方法,果然extend方法支持了jq的半边天,拿来主义,给自己的对象做扩张用. 下面进入正题: 假如有以下一个对象 复制代码 代码如下: var MyMath = { //加法 Add: function(a, b){ return a + b; }, //减法 Sub: function(a, b){ return a - b; } } 对象名MyMath,有两个静

文本110显示不出来-extjs Ext.msg.alert()文本显示为空

问题描述 extjs Ext.msg.alert()文本显示为空 Ext.Msg.alert('提示','110'); 110显示不出来,为空白! 解决方案 它只接受一个参数吧?? 解决方案二: API文档上会有具体的例子,对着API做就好了 解决方案三: 方法就是这样用的,是不是你修改过css导致内容隐藏了? http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.MessageBox-method-alert

ExtJS Ext.MessageBox.alert()弹出对话框详解_extjs

复制代码 代码如下: Ext.onReady(function() { Ext.Msg.alert('提示', '逗号分隔参数列表'); //这种方式非常常见的 }); 效果图: 复制代码 代码如下: Ext.onReady(function() { //定义 JSON(配置对象) var config = { title:'提示', msg: 'JSON配置方式,简单吧' } Ext.Msg.show(config); }); 效果图: 上边我只是简单举例,好了看到了漂亮的界面了吧!接下来认识