使用Ext创建一个js对象。
charset = 'utf-8';
Ext.namespace("general.athena.model");
general.athena.model.Person = Ext.emptyFn;
Ext.apply(general.athena.model.Person.prototype, {
//在prototype里面定义了的属性,是js对象的实例属性(和对象)
//如果直接使用Person.print 那么这个属性就是一个静态的方法
name : "",
sex : "",
job : "无",
print : function() {
/*
* Ext.MessageBox.alert("print", String.format("姓名:{0},性别:{1}",
* this.name, this.sex));
*/
alert(String.format("姓名:{0},性别:{1},工作:{2}", this.name, this.sex,this.job));
}
});
这里使用Ext.emptyFn来创建一个js的Person对象,在使用Ext.apply()函数来给Person的prototype,这些属性(方法)是Person的实例属性。
Ext的OOP的构造函数和静态方法
//Ext 的构造方法
general.athena.model.Person1 = function(cfg){
Ext.apply(this,cfg);
};
general.athena.model.Person1.print = function(name,sex){
// var person = new general.athena.model.Person1({name:name,sex:sex});
// person.print();
alert("静态方法");
};
Ext.apply(general.athena.model.Person1.prototype,{
print:function(){
alert(String.format("姓名:{0},性别:{1}",this.name,this.sex));
}
});
ExtOOP的继承
charset = 'utf-8';
Ext.namespace('general.athena.model');
// 构造函数
general.athena.model.Student = function(cfg) {
Ext.apply(this, cfg);
};
Ext.extend(general.athena.model.Student, general.athena.model.Person, {
job : '学生'
});
上面的Student类是继承了Person类,那么他就有Person类的print实例方法。
测试方法
var person = new general.athena.model.Person();
person.name = "XXX";
person.sex = "男";
person.print();
person.name = "天上人间";
person.sex = "不难不女";
person.print();
general.athena.model.Person1.print();
var person1 = new general.athena.model.Person1({
name : "XXX",
sex : "男"
});
person1.print();
var student = new general.athena.model.Student({
name : 'XXX',
sex : '男'
});
student.print();
自定义Ext类。
LoginWindow = Ext.extend(Ext.Window, {
id:'loginWindow',
title : '登录系统',
width : 265,
height : 140,
collapsible : true,
draggable : false,
resizable : false,
plain:true,
defaults : {
border : false
},
buttonAlign : 'center',
createFormPanel : function() {
return new Ext.form.FormPanel({
bodyStyle : 'padding-top:6px',
defaultType : 'textfield',
labelAlign : 'right',
labelWidth : 55,
labelPad : 0,
frame : true,
defaults : {
allowBlank : false,
width : 158
},
items : [ {
cls : 'user',
name : 'userName',
fieldLabel : '帐号',
blankText : '帐号不能为空'
}, {
cls : 'key',
name : 'password',
fieldLabel : '密码',
blankText : '密码不能为空',
inputType : 'password'
} ]
});
},
login : function() {
if (this.fp.form.isValid()) {
this.fp.form.submit({
waitTitle : '请稍候',
waitMsg : '正在登录......',
url : 'user/login!doLogin',
success : function(form, action) {
window.location.href = 'main.jsp';
},
failure : function(form, action) {
form.reset();
Ext.Msg.alert('警告', action.result.data);
}
});
}
},
keys : new Ext.KeyMap(this, {
key : 13,
fn : function() {
if (Ext.getCmp('loginWindow').fp.form.isValid()) {
Ext.getCmp('loginWindow').fp.form.submit({
waitTitle : '请稍候',
waitMsg : '正在登录......',
url : 'user/login!doLogin',
success : function(form, action) {
window.location.href = 'main.jsp';
},
failure : function(form, action) {
form.reset();
Ext.Msg.alert('警告', action.result.data);
}
});
}
},
scope : this
}),
initComponent : function() {
LoginWindow.superclass.initComponent.call(this);
this.fp = this.createFormPanel();
this.add(this.fp);
this.addButton('登录', this.login, this);
this.addButton('重置', function() {
this.fp.form.reset();
}, this);
}
});
上面的代码是网上的例子,我改了一点点地方,发现一个问题这里记录一下。
上图中的Ext.getCmp('loginWindow')是我自己添加的。第一次添加的是Ext.get('loginWindow')。结果是错误的。我猜原因是这样的,给自定义对象添加的任何属性都属于Compnent的属性,而非Element的属性。所以在不到。

- 大小: 36.1 KB
分享到:
相关推荐
《Python库oop-ext-0.3.2:面向对象编程扩展》 在Python的世界里,库是开发者的重要工具,它们提供了丰富的功能,帮助我们高效地完成各种任务。今天我们要探讨的是名为"oop-ext-0.3.2"的Python库,它是一个针对面向...
#### 第三章:Ext OOP基础 - **JavaScript类的定义**:讲解如何在JavaScript中定义类以及继承的概念。 - **Extjs命名空间的定义**:介绍如何在Extjs中定义命名空间来组织代码。 - **Extjs OOP**:深入探讨Extjs中...
标题中的"Python库 | oop-ext-0.2.0.tar.gz"表明这是一个与Python相关的库,名为"oop-ext",版本号为0.2.0,并且它被压缩成一个tar.gz文件。这种格式是Linux和Unix系统中常见的归档和压缩方式,通常用于分发软件包。...
资源来自pypi官网。 资源全名:oop_ext-0.1.8-py2.py3-none-any.whl
标题中的"Python库 | oop_ext-0.1.8-py2.py3-none-any.whl" 提供了关于这个资源的关键信息。首先,我们关注的是`oop_ext`,这显然是一个Python库的名字,它专注于面向对象编程(Object-Oriented Programming, OOP)...
第01章:序 第02章:准备与资源 第03章:Ext OOP基础 第04章:消息框 第05章:页面与脚本完全分离 第06章:元素操作与模板 第07章:格式化 第08章:Extjs组件结构 第09章:按钮与日期选择器 第10章:数据与ComboBox ...
主要包括data,widget,form,grid,dd,menu,其中最强大的应该算grid了,编程思想是基于面对对象编程(oop),扩展性相当的好.可以自己写扩展.自己定义命名空间.web应用可能感觉太大.不过您可以根据需要按需加载您想要的...
第01章:序 第02章:准备与资源 第03章:Ext OOP基础 第04章:消息框 第05章:页面与脚本完全分离 第06章:元素操作与模板 第07章:格式化 第08章:Extjs组件结构 第09章:按钮与日期选择器 第10章:数据与ComboBox ...
主要包括data,widget,form,grid,dd,menu,其中最强大的应该算grid了,编程思想是基于面向对象编程(oop),扩展性相当的好.可以自己写扩展.自己定义命名空间.web应用可能感觉太大.不过您可以根据需要按需加载您想要的...
ext是一个强大的js类库,以前是基于YAHOO-UI,现在已经完全独立了, 主要包括data,widget,form,grid,dd,menu,其中最强大的应该算grid了,编程思想是基于面向对象编程(oop),扩展性相当的好.可以自己写扩展.自己定义命名...
在Java编程语言中,面向对象(Object-Oriented Programming,OOP)是一种核心特性,它提供了组织代码的有效方式,使得程序更加模块化、可维护和易于扩展。在Ext框架中,面向对象的概念得到了进一步的强化和扩展,为...
主要包括data,widget,form,gird,dd,menu,其中最强大的应该算gird了,编程思想是基于面对对象编程(oop),扩展性相当的好.可以自己写扩展.自己定义命名空间.web应用可能感觉太大.不过您可以根据需要按需加载您想要的类库...
主要包括data,widget,form,gird,dd,menu,其中最强大的应该算gird了,编程思想是基于面对对象编程(oop),扩展性相当的好.可以自己写扩展.自己定义命名空间.web应用可能感觉太大.不过您可以根据需要按需加载您想要的类库...
- **面向对象编程 (OOP)**: ext 的设计思想基于面向对象编程,这使得开发者可以更轻松地组织代码结构,并利用封装、继承和多态等特性来提高代码复用性和维护性。 - **扩展性**: ext 具有良好的扩展性,开发者可以...
extjs是一个强大的js类库Ext简介 Ext是一个强大的js类库,以前是基于YAHOO-UI,现在已经完全独立了, 主要包括data,widget,form,grid,dd,menu,其中最强大的应该算grid了,编程思想是基于面向对象编程(oop
在IT行业中,面向对象编程(Object-Oriented Programming,简称OOP)是一种广泛采用的编程范式,它通过封装、继承和多态等概念来构建软件系统。在Web开发领域,ExtJS是一个强大的JavaScript库,用于创建丰富的用户...
主要包括data,widget,form,grid,dd,menu,其中最强大的应该算grid了,编程思想是基于面对对象编程(oop),扩展性相当的好.可以自己写扩展.自己定义命名空间.web应用可能感觉太大.不过您可以根据需要按需加载您想要的...
EXT文件上传源码 项目描述 Ext是一个强大的js类库,...程(oop),扩展性相当的好.可以自己写扩展.自己定义命名空间.web应用可能感觉太大.不过 您可以根据需要按需加载您想要的类库就可以了. 此源码是EXT的文件上传示例
ext是一个强大的js类库,以前是基于YAHOO-UI,现在已经完全独立了, 主要包括data,widget,form,grid,dd,menu,其中最强大的应该算grid了,编程思想是基于面向对象编程(oop),扩展性相当的好.可以自己写扩展.自己定义命名...
主要包括data、widget、form、grid、dd、menu,其中最强大的应该算grid了,编程思想是基于面向对象编程(oop),扩展性相当的好。可以自己写扩展,自己定义命名空间。web应用可能感觉太大。不过您可以根据需要按需加载...