声明:
①学习时Extjs版本3.2.0,
②引用ExtJs代码:
<link rel="stylesheet" type="text/css" href="../../ext-3.2.0/resources/css/ext-all.css">
<script type="text/javascript" src="../../ext-3.2.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../../ext-3.2.0/ext-all.js"></script>
面向对象设计一般主要有以下一些方面:①属性②方法③构造方法④继承⑤事件.先看个示例:
Person = function(_cfg){
Ext.apply(this,_cfg);
}
以上代码定义一个空的Person类,并实现构造方法。
Ext.apply(Person.prototype,{
name:"",
sex:"",
printf:function(){
alert(String.format("姓名:{0},性别:{1}",this.name,this,sex););
}
});
以上代码是给Person类增加两个属性及一个方法。这种添加属性方法的写法叫做"标量写法",Json格式,代码简练且方便。
Ext.onReady(function(){
//创建一个Person类的实例
var _person = new Person();
_person.name="余雅娜";
_person.sex="女";
_person.printf();
var _person_ = new Person({name:"李志文",sex:"男"});
_person_.printf();
});
以上代码实现了两种方式创建了两个Person对象,并调用printf方法来输出。
Student = function(_cfg){
Ext.apply(this,_cfg);
}
Ext.extend(Student,Person,{
name:"学生",
sex:"",
printf:function(){
alert(String.format("我是一个学生,名字:{0},性别:{1}",this.name,this.sex));
}
});
以上代码创建一个有构造参数的Student类,它继承了Person类,并重写了父类的属性方法。这里的继承,可以扩展属性及方法等。
到目前为止,已经学习了ExtJs的属性、方法、构造方法、继承。下面根据继承,说下事件.
Teacher = function(_cfg){
this.addEvents("namechange","sexchange");
}
Ext.extend(Teacher,Ext.util.Observable,{
name:"",
sex:"",
setName:function(_name){
if(this.name != _name){
//触发namechange事件
this.fireEvent("namechange",this,this.name,_name);
this.name = _name;
}
},
setSex:function(_sex){
if(this.sex != _sex){
this.fireEvent("sexchange",this,this.sex,_sex);
this.sex = _sex;
}
}
});
Ext.onReady(function(){
var _teacher = new Teacher();
_teacher.on("namechange",function(_teacher,_old,_new){
alert(String.format("老师的姓名改变了,由原来的:{0}变为了:{1}",_old,_new));
});
_teacher.on("sexchange",function(_teacher,_old,_new){
alert(String.format("老师的性别改变了,由原来的:{0}变为了:{1}",_old,_new));
})
_teacher.setName(prompt("请输入老师姓名",""));
_teacher.setSex(prompt("请输入老师性别",""));
});
以上代码创建了一个Teacher类,并给它添加了namechange,sexchange两个事件,这两个事件会分别在name/sex改变的时候触发。在实际调用的时候,创建_teacher对象,并添加监听,以及事件触发时的响应函数.
关于命名空间,Ext.namespace("Ext.test");不知道怎么回事,创建类Ext.test.Person时,调用老是报错,请拍砖指教!
分享到:
相关推荐
根据提供的文件信息,可以看出主题是关于ExtJS框架与面向对象编程的实现方式。然而,由于提供的部分内容似乎并不完整且存在一些非标准字符,这给直接提取有用信息带来了困难。因此,我们将基于标题、描述和标签中的...
"ExtJS培训sample_for面向对象设计"这个主题主要聚焦于如何在ExtJS中应用面向对象的设计原则和模式。 在面向对象设计中,有四个核心概念:封装、继承、多态和抽象。这些概念同样适用于JavaScript,因为JavaScript是...
在JavaScript的世界里,面向对象(Object-Oriented Programming, OOP)是一种常用的设计模式,它允许我们通过类和对象来组织代码,实现代码的复用和模块化。本篇文章将探讨EXTJS框架中的面向对象机制,特别是继承的...
例如,JavaScript库如ExtJS和YUI就是面向对象编程的典型应用,它们通过封装复杂的交互逻辑和组件,提高了开发效率。 总之,JavaScript的面向对象编程并不局限于传统的类和继承,而是通过对象、原型和函数等手段实现...
它强调了JavaScript面向对象编程(OOP)在Extjs框架中的应用,并通过实例演示了如何使用各种组件和布局来创建复杂的用户界面。本教程通过递进式的结构,使读者从基础知识起步,逐步掌握Extjs的高级应用,最终能够...
它的类系统是其核心特性之一,借鉴了面向对象编程的概念,使得在JavaScript中可以实现结构化、可复用的代码。这篇博客文章“ExtJs 类的设计”可能深入探讨了如何在ExtJs中有效地设计和使用类。 1. **类的定义** 在...
EXTJS 面向对象编程教程 EXTJS 是一个基于 JavaScript 的富客户端框架,它提供了强大的组件模型和面向对象的编程方式,使得开发者能够构建复杂的 Web 应用程序。面向对象编程(Object-Oriented Programming, OOP)...
- **面向对象编程**:ExtJS鼓励使用面向对象的编程模式,便于代码的管理和维护。例如: ```javascript Ext.namespace('demo'); demo.User = Ext.extend(Ext.Panel, { getName: function() { // 实现方法 } })...
另一方面,**C#** 是一种强大的面向对象编程语言,常用于构建.NET Framework的应用程序。在本项目中,C#被用来编写后端服务,处理用户请求、数据存储、业务逻辑以及与数据库的交互。可能使用ASP.NET MVC或者ASP.NET ...
19、ExtJS之组件面向对象编程(一) 20、ExtJS之组件面向对象编程(一) 21、项目实战-需求分析、数据字典、数据库设计) r, `+ J( `$ l# d7 I$ h# W: U' r* a 22、项目实战-底层框架搭建、创建实体对象 23、项目实战...
- **JS类系统**:ExtJS使用面向对象的类系统,类与类之间可以通过继承实现代码重用和扩展。 - **事件系统**:事件驱动是ExtJS的核心机制,允许组件间通信和响应用户操作。 - **Ajax通信**:Ext.Ajax模块负责异步...
面向对象编程(OOP)是ExtJS框架的核心设计理念之一。通过采用面向对象的方法,开发者可以更好地组织代码结构,提高代码的复用性和维护性。 - **类与继承**: 在ExtJS中,可以通过定义类来创建组件,并通过继承机制...
- **资源推荐**:《传智播客成都中心JavaScript面向对象及ExtJS基础视频》中的AJAX章节(PPT格式),通过实例讲解了如何使用ExtJS进行AJAX调用。 2. **浏览器对象模型(BOM)**:这部分资料讲解了浏览器对象模型的...
EXTJS 4.0 是一个面向开发 RIA 的 AJAX 应用,是一个用 JavaScript 写的,主要用于创建前端用户界面,是一个与后台技术无关的前端 AJAX 框架。它能够帮助我们在页面上快速而简单构建各种各样的控件,简化我们自己去...
本文旨在针对具有一定 JavaScript 基础(理解面向对象、继承、作用域等概念)并且熟悉 Extjs 框架(了解组件间继承关系)的开发者,提供一些关于如何对 Extjs 的前台架构进行性能优化的方法。 #### 二、缓存 缓存...
.NET,全称Microsoft .NET Framework,是由微软公司开发的一种全面的、面向对象的开发平台,包含了一整套用于构建各种类型的应用程序的工具和服务。它提供了C#、VB.NET等编程语言,以及ASP.NET用于Web开发,使得...
JAVA的强类型和面向对象特性使其在处理复杂业务时表现出色。 MYSQL是广泛使用的开源关系型数据库,对于中小规模的数据存储非常合适。在“图片文章管理项目”中,MYSQL可能包含了多个表,如文章表(包含文章ID、标题...
Hibernate作为对象关系映射框架,提供了一种面向对象的方式来操作数据库,而iBatis则更注重SQL的灵活控制。两者各有优势,可以根据实际需求进行选择和结合,以满足不同的数据访问策略。 Spring框架在系统中扮演着...
2. **Hibernate**:这是一个强大的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库。Hibernate负责将Java对象与数据库表进行映射,使得在处理数据库操作时,开发者可以避免编写大量的SQL语句...
- **继承机制**:ExtJS支持面向对象编程中的继承特性,可以扩展现有的组件类。 - **继承示例**:文档中给出了一些具体的继承示例,帮助理解继承的用法。 #### 22. 补充资料 - **Ext2概述**:介绍了ExtJS 2版本的...