`
bingyu
  • 浏览: 42145 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Thinking in ExtJs 面向对象思想(2)

阅读更多

二:运用构造函数

面向对象的语言必然要支持构造方法。

运用构造方法之后,ext-bingyu.js的代码将变为如下所示。

//定义命名空间
Ext.namespace("Ext.bingyu");
//定义一个类
Ext.bingyu.Person = function(_cfg){
 Ext.apply(this,_cfg);
 };
//添加类的原型
Ext.apply(Ext.bingyu.Person.prototype,{
 //类实例方法
 say:function(){
 return String.format("姓名:{0},性别:{1}",this.name,this.sex);
 }
 });
//添加类的静态方法
Ext.bingyu.Person.say = function(_name,_sex){
 var _person = new Ext.bingyu.Person({name:_name,sex:_sex});
 return _person.say();
 };

 

对比之前的代码很容易发现两者的区别,后者去掉了之前定义在Ext.apply内的实例属性,由外部接收的参数属性将自动赋值给该对象,从而可以调 用。

调用方式依然如上。

三:类继承和类实例方法重写

Ext也模拟了类继承机制,通过Ext.extend来实现。在ext-bingyu.js中加入如下代码。

//再定义一个类
Ext.bingyu.shengFen = function(_cfg){
 Ext.apply(this,_cfg);
 };
//继承Person并添加新的属性和重写方法
Ext.extend(Ext.bingyu.shengFen,
 Ext.bingyu.Person,{
 job:'软件工程师',
 say:function(){
 return String.format("{0}是一个{1}",this.name,this.job);
 }
 });

 

可以看到Ext.bingyu.shengFen类继承了Ext.bingyu.Person类,同时重写了它的say的实例方法,实现不同的功 能。

比如在页面的js代码中进行如下调用。

var p = new Ext.bingyu.Person({name:"bingyu",sex:"男"});
alert(p.say());
var t = new Ext.bingyu.shengFen({name:"bingyu",sex:"男"});
alert(t.say());
 

页面先弹出对话框:

姓名:bingyu,性别:男

然后弹出对话框:

bingyu是一个软件工程师

四:支持命名空间别名和类别名

Ext也支持命名空间别名和类别名。这点就不多说了,比如
By = Ext.bingyu;By就等效于Ext.bingyu了。

注意,命名空间别名首字母必须大写,后面小写。

PN = Ext.bingyu.Person;那么PN就相当于Ext.bingyu.Person了

要注意的是,类别名必须全部大写,以便和命名空间别名相区别。

 

分享到:
评论

相关推荐

    ExtJS对几种面向对象体现.txt

    面向对象编程是一种程序设计思想,其核心在于将数据和操作数据的方法封装在一起形成类,然后通过实例化类得到对象。这种方式有助于提高代码的复用性、可维护性和扩展性。在JavaScript这样的动态类型语言中,尽管没有...

    ExtJs培训sample_for面向对象设计

    2. **教程文档**:解释了如何在ExtJS中运用面向对象设计,可能包括创建类、继承、配置对象、事件处理等方面的详细步骤。 3. **演示页面**:提供了一个运行的Web应用实例,便于理解面向对象设计在实际项目中的应用。 ...

    ExtJs in Action 2009完整版

    ExtJs In action 2009,直击Extjs3.0,不可多得的In Action系列学习Extjs的书籍

    ext面向对象和继承

    本篇文章将探讨EXTJS框架中的面向对象机制,特别是继承的概念,以及如何在实际开发中应用这些概念。 EXTJS是一个强大的JavaScript库,它提供了丰富的UI组件和数据绑定功能,适用于构建复杂的Web应用程序。在EXTJS中...

    js实现面向对象基础代码

    如果你读过extjs的原代码,一定知道它是基于面向对象思想代码。该代码不同于extjs,更加合理且容易理解。

    轻松搞定Extjs 带目录

    Extjs支持面向对象编程,其对象模型包括: - 类的定义(Ext.extend) - 对象实例化(通过new关键字) - 原型链继承(JavaScript的继承机制) - 类的配置选项和方法(config选项) #### 4. 消息框的使用 Extjs提供...

    ExtJS4中文教程2 开发笔记 chm

    Javascript 面向对象之非构造函数的继承 JavaScript对象与继承教程之内置对象(下) JavaScript对象及继承教程(上) javascript正则表达式(一) javascript正则表达式(二) JavaScript的10种跨域共享方法 JavaScript...

    extJs3升级extjs4方案

    ExtJS3 升级到 ExtJS4 方案 ExtJS3 升级到 ExtJS4 需要修改大量代码,主要是因为 ExtJS4 配备了一类新的系统,不向后兼容。在 ExtJS 3 里生成表的几个框架组件,ExtJS4 大多生成 div,这使得 CSS classes 将会失败...

    extjs+s2sh

    在IT行业中,"extjs+s2sh"是一个典型的前端与后端框架的集成案例,它结合了ExtJS、Struts2、Hibernate和Spring这四个关键组件。这些技术的结合为开发人员提供了一套完整的解决方案,用于构建功能丰富的、数据驱动的...

    Extjs4.1.1

    课程简介: ExtJS是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端ajax框架,本...第十九讲.ExtJS之组件面向对象编程(一) 第二十讲.ExtJS之组件面向对象编程(二) 项目实战Extjs版在线选课系统:

    ExtJs学习资料14-OOP[JavaScript面向对象编程].doc

    ExtJs学习资料14-OOP[JavaScript面向对象编程]

    ExtJS对原有JavaScript对象的扩展

    ExtJs2.0学习系列(1)--Ext.MessageBox

    ext面向对象编程教程

    2. **类系统**:EXTJS 提供了一个完整的类系统,包括类、接口、继承、多态等面向对象概念。开发者可以通过定义类来创建自定义组件,通过继承已有的类来扩展功能。 3. **配置选项**:EXTJS 的组件通常可以通过大量的...

    EXTJS4+STRUTS2+JAVA增删改查

    EXTJS4、STRUTS2和JAVA是Web开发中常用的三大技术框架,它们结合使用可以构建功能丰富的交互式用户界面和高效的企业级应用。在这个"EXTJS4+STRUTS2+JAVA增删改查"的例子中,我们将深入探讨这三个技术如何协同工作,...

    EXTJS2 API

    4. **Store和Model**:Store是EXTJS2的数据存储对象,用于管理数据集。Model定义了数据结构和字段,与Store配合使用,可以方便地进行数据操作和CRUD(Create, Read, Update, Delete)操作。 5. **数据代理(Data ...

    extjs 4.2 jsb2

    extjs 4.2 jsb2 4.2没有自带jsb2文件

    ExtJS.in.Action

    ### ExtJS.in.Action #### 知识点概览 1. **ExtJS框架介绍** - 架构设计原理 - 基础概念 - 事件处理机制 - 组件与容器 2. **ExtJS核心组件详解** - 组件的基本用法 - 组件组织管理 - 表单处理技术 3. **...

    extjs流程界面设计器参考_ExtJS工作流设计器_extjs工作流_extjs_

    ExtJS是一种广泛使用的JavaScript库,专门用于构建富客户端的Web应用程序。它提供了丰富的组件和工具,使得开发者可以创建出功能强大、用户界面友好的Web应用。在“extjs流程界面设计器参考”中,我们主要关注的是...

Global site tag (gtag.js) - Google Analytics