本教程整理了extjs的一些基本概念及其使用,包括自定义类(Ext.define)、数据模型、代理等。本节介绍使用Ext.define自定义类

使用Ext.define自定义类

1. 首先看看js中自定义类的代码:

var Person = function (name, age) {
this.Name = "";
this.Age = 0;
this.Say = function (msg) {
alert(this.Name + " Says : " + msg);
} this.init = function (name, age) {
this.Name = name;
this.Age = age;
} this.init(name, age);
}

在这段代码中,我们定义了Person类,它具有Name 和 Age 两个属性,具有 Say 和 init 公有方法。

创建对象的代码:

var Tom = new Person("Tom", 26);
Tom.Say("Hello");

2. 下面主要介绍ExtJS.define自定义类d的实现。

Ext.define("Person", {
Name: '',
Age: 0,
Say: function (msg) {
Ext.Msg.alert(this.Name + " Says:", msg);
},
constructor: function (name, age) {
this.Name = name;
this.Age = age;
}
});

用法和上述js创建对象用法一致。

3. ExtJS中类的继承

ExtJS 允许对现有的类进行扩展,其扩展可以通过继承来实现。代码如下:

Ext.define("Developer", {
extend: 'Person',
Coding: function (code) {
Ext.Msg.alert(this.Name + " 正在编码", code);
},
constructor: function(){
this.callParent(arguments);
}
});

在构造函数中,通过调用this.callParent 方法,实现对属性的初始化。需要说明的是,如果此处只调用了父类的构造方法,则可以省略掉,ExtJS 会自动为我们调用父类的构造函数。所以我们此处的代码可以进行简化:

Ext.define("Developer", {
extend: 'Person',
Coding: function (code) {
Ext.Msg.alert(this.Name + " 正在编码", code);
}
});

需要注意的是,如果你在子类中使用了构造函数,ExtJS 则不会再自动调用父类的构造函数。和java不一样哦

4. 创建类的对象(ExtJS 中类的选项 - config)

下面看一般情况下创建对象的方式:

var Bill = new Developer("Bill", 26);
Bill.Coding("int num1 = 0; ");

一般这种情况是使用构造函数来完成传入参数的初始化工作,在传入的参数较多时,就很不方便了。这时Extjs提供了类的选项config。通过config。

我们在类的定义中添加了config项,将需要在配置中完成的属性添加在里面,而在构造函数中,我们通过调用this.initConfig方法完成对config的初始化。看一下用法:

Ext.define("Person", {
config: {
Name: '',
Age: 0,
},
Say: function (msg) {
Ext.Msg.alert(this.Name + " Says:", msg);
},
constructor: function (config) {
this.initConfig(config);
}
});
var Tom = Ext.create("Person", {
Name: 'Tom',
Age: 26
});
Tom.Say("Hello");

除了代码更加清晰简洁以外,ExtJS 还为我们生成了访问器,我们可以通过下面的方式访问Tom的属性:

Tom.setAge(20);
alert(Tom.getAge());

参考链接:http://www.qeefee.com/extjs-course-3-define-classes

Extjs 学习总结-Ext.define自定义类的更多相关文章

  1. ExtJS 4.2 教程-03:使用Ext.define自定义类

    转载自起飞网,原文地址:http://www.qeefee.com/extjs-course-3-define-classes ExtJS 4.2 教程-01:Hello ExtJS ExtJS 4. ...

  2. Extjs-4.2.1(二)——使用Ext.define自定义类

    鸣谢:http://www.cnblogs.com/youring2/archive/2013/08/22/3274135.html --------------------------------- ...

  3. ExtJS学习(一)Ext自定义类实现

    工作中项目需要extjs,所以学习一下,做个笔记防止遗忘了.以后回忆起来也方便. 首先下载extjs官网地址:http://extjs.org.cn/ 下载以后的目录结构: 先写一个入门的程序吧自定义 ...

  4. ExtjS学习--------Ext.define定义类

    Ext类Class的配置项:(注:Extjs的 的中文版帮助文档下载地址:http://download.csdn.net/detail/z1137730824/7748893 ExtJS配置文件和演 ...

  5. PyQt学习随笔:通过自定义类重写QApplication的notify方法捕获应用的所有消息

    PyQt程序通过调用QApplication类的exec_()(sys.exit(app.exec_()) 进入程序主循环,开始处理事件,它从事件队列中获取本地窗口系统事件,将它们转化为 QEvent ...

  6. ExtJS学习(二)Ext组件模型

    Ext中所有的组件都继承自Ext.component,这种单根继承的模型保证所有组件都拥有相同的通用方法与生命周期,这样在后续对这些组件进行维护管理时将更加便捷,同时也保证了在进行布局时的便利. 组件 ...

  7. 20. Extjs学习笔记——Ext.data.JsonStore使用说明

    Ext.data.JsonStore继承于Ext.data.Store,使得从远程JSON数据创建stores更为方便的简单辅助类.JsonStore合成了Ext.data.HttpProxy与Ext ...

  8. Extjs学习笔记——Ext.data.JsonStore使用说明

    Ext.data.JsonStore继承于Ext.data.Store.使得从远程JSON数据创建stores更为方便的简单辅助类. JsonStore合成了Ext.data.HttpProxy与Ex ...

  9. extjs学习之Ext.selection.CheckboxModel

    Ext.onReady( function() { var store=Ext.create('Ext.data.Store', { storeId:'simpsonsStore', fields:[ ...

随机推荐

  1. 11、只允许在主目录下上传和下载文件,不允许用putty登录

    创建用户xiao,   使其只允许在用户主目录 (/var/www/html)下上传和下载文件,不允许用putty登录 (为了安全起见,不给过多的权限) 1.创建xiao用户 [root@localh ...

  2. Android APP 两种用程序拨号的方式

    想在APP中添加一个拨号功能该怎样做呢?Android提供了两种方式,一种是ACTION_CALL方式直接拨打,另一种是ACTION_DIAL方式打开系统的拨号界面. 下面我们来做个小例子 首先需要在 ...

  3. jenkins, ant, pmd持续集成

    http://pmd.sourceforge.net/pmd-5.0.3/ant-task.html 在jenkins , ant , pmd进行集成的时候,build.xml模板如下,在网上找了一些 ...

  4. SQLMAP参数介绍

    转自:http://zhan.renren.com/bugpower?gid=3602888498044629629&checked=true SQLMAP参数介绍 sqlmap的使用方式:p ...

  5. GL_ARRAY_BUFFER 和 GL_ELEMENT_ARRAY_BUFFER

    转载请注明出处.系列教程: webgl-lesson.wysaid.org 第七话, 了解OpenGL的几种Array Buffer,实现大量顶点的批量绘制, 以及映射纹理坐标 每一话都间隔很久,其实 ...

  6. 读深入了解c++内核对象模型小结(1/3/4)

    之前早就听说这本书不错,如果想对c++进一步的了解可以看看,此书是进阶阶段参考,笔者自己看了书的第一.三.四章节,后面会继续.      第一章讲了c++的对象模型的引入,各种模型的对比和现在c++采 ...

  7. Matlab

    Q:workspace没有显示变量的值 A:这是因为子程序里的变量是局部变量,他们的作用域就是子函数内部,会在流程控制回到主调函数前被系统自动释放掉,所以,一旦子程序运行完,你是不可能再查看子程序里的 ...

  8. angularjs + fis +modJS 对于支持amd规范的组建处理(PhotoSwipe 支持,百度webUpload支持)

    这不是很好的处理方式,但是能够解决问题,希望有大神推荐更好的方式. 前端模块使用angularjs + fis +modJS 开发前端应用有两个月了.总结了以下的优点: fis 自动构建,自动发布,功 ...

  9. Win10 UWP 开发学习代码(不断更新)

    页面之间跳转(传值) string txt = "Spring Lee"; this.Frame.Navigate(typeof(BlankPage1),txt); 另一个页面接收 ...

  10. Windows操作系统组策略应用全攻略

    作者:佚名出处:IT专家网论坛2007-07-23 13:31 一.什么是组策略 (一)组策略有什么用? 说到组策略,就不得不提注册表.注册表是Windows系统中保存系统.应用软件配置的数据库,随着 ...