从Library的角度去看,Ext
(喜欢
中文的朋友可以到它的中
文站
看看)和Prototype
JQuery
YUI没有太大区别,但它有它的优点,完整的OO支持、成熟的通用widgets并支持主题、良好的扩展性、快速的更新发布新的widgates、社区也
很热闹。最重要的是我个人比较喜欢它。
首先打开源代码看一下它的结构:
从core开始看吧
Ext = {version: '2.0-beta1'};
这一行代码是定义一个变量Ext,没有使用var表明作者的意思是要将它定义为全局的。等号右边是Json
(Javascript object
Notation)格式,等效于以下代码:
Ext = new Object();
Ext.version = '2.0-beta1';
window["undefined"] = window["undefined"];
这行代码需要说明的是window和Ext不同,它是内置的Borwser对象,无需代码声明。和C#等编译类语言不同,在js中当一个对象存在以后,我
们可以在任何时候对它的成员进行修改。对像成员的访问有两种方式:一是点记法(如Ext.version),二是索引法Ext["version"]。索
引法看上去麻烦,但实际上却很灵活,而且在有些场合(如下面将要提到的namespace
override等函数)是不可替代的。如遍历对象的成员(属性集合中的每一项)。undefined在IE(js)5.5之后的版本中才有,这里的这种
写法就巧妙的兼容了旧版本的浏览器。理解了索引法对成员的访问后,来看一下Ext.apply方法。
Ext.apply = function(o, c, defaults){
if(defaults){
// no "this" reference for friendly out of scope calls
Ext.apply(o, defaults);
}
if(o && c && typeof c == 'object'){
for(var p in c){
o[p] = c[p];
}
}
return o;
};
这是一个相当关键的方法,它和Prototype中的Object.Extend是一样的(这里没有用extend是因为它被用到继承
Ext.extend上面了),实现了对象扩展的功能,即从对象c拷贝成员的功能(如果有默认配置,则先从默认配置扩展)。Ext有了这个方法后,紧接着
用这个方法对自己进行了丰富的扩展。扩展的时候用了下面这种写法:
(function(){var i=100;alert(i)})()
这种写法就是传说中的匿名函数,它的好处是函数内部定义的对象在函数外面永远无法访问,除此之外这个匿名函数也是不可被其它代码访问的,即使得对象之间不
容易被命名污染(在js中很多错误是由于对象命名冲突引起的)。按照通常的写法我们会这样写function a(){var i =
100;alert(i)};a();这样写就留下了一个对象a(在不要再用的时候就成了内存垃圾)。回到Ext对象,它给自己添加了几个很重要的成员:
- namespace
命名空间,js的命名空间其实就是对项链。如传入"a.b.c",则生成三个对象,并链接起来。需要说明的是
Ext.namespace("a.b.c")会出错,因为它内部把a指向了arguments,这样生成的对象在namespace的外边是不存在的。
在以后的文章里,会以Ext扩展的命名空间来逐一阅读理解。
- applyIf(o, c) 将对象c中非未定义成员扩展到o上
- addBehaviors(o)
- id() 生成唯一对象ID,
-
extend
对函数扩展,即类型继承。这是一个至关重要的成员,整个框架中类型的派生
都离不开它的支持。
- getDom 与Prototype的$一样
- type
- removeNode
- destroy
- num
- callback
- combine
- each
- urlDecode
- urlEncode
Js内置的类型有object string function number boolean array date
下面是Ext对内置对象和其原型的扩展
- Function.prototype
- createCallback 将当前函数应用到指定的对象上,并返回新的函数供调用执行
- createDelegate 也是返回一个新函数,差异在以后的章节详细阐述
- defer
- createSequence
- createInterceptor
- String
- escape 转义'和\符号
- leftPad 很像C#的PadLeft PadRight,自己写的时候往往忘记考虑传入空字符串,会造成死循环
- format 格式化字符串,类似C#的String.Format
- String.prototype
- toggle 交换两个,用于代替三值表达式
- trim 去掉空格
- Number.prototype.constrain
- indexOf
- remove
- Array
- indexOf
- remove
- Date.prototype.getElapsed 获取当前时间与该对象之间的毫秒数
继续 阅读Ext学习Javascript(二)Core/Ext.extend 从继承说起
分享到:
相关推荐
**EXT**(Ext JS)是一种基于JavaScript的开源框架,用于构建现代化的Web应用程序。它利用Ajax技术,为用户提供流畅且响应式的交互体验。EXT提供了丰富的用户界面组件库,支持多种后端技术如ASP.NET、C#、JQuery等,...
在阅读《Ext_Core手册.pdf》时,可以深入研究EXTJS的核心概念和API,了解更多关于`Ext.get`和`Ext.fly`的底层实现以及它们在不同场景下的应用策略。同时,理解EXTJS中的`Element`类和DOM操作对于提升EXTJS应用的性能...
- **ext-core.js**:压缩后的Ext核心组件,包括`sources/core`下的所有类。 - **ext-core-debug.js**:未压缩的Ext核心组件,同样包含`sources/core`下的所有类。 #### 三、EXT开发环境搭建 ##### Eclipse与...
<script type="text/javascript" src="ext-2.3.0/adapter/ext/ext-base.js"></script> <!-- ENDLIBS --> <script type="text/javascript" src="ext-2.3.0/ext-all.js"></script> <script type="text/javascript...
标题 "Ext core 3.1.0的一个大Bug" 暗示了我们在讨论JavaScript库Ext JS的核心组件在特定版本3.1.0中的一个重大问题。Ext JS是一款广泛使用的前端开发框架,提供了丰富的UI组件和强大的数据管理功能。在这个问题中,...
Ext Core是Ext JS的一个轻量级版本,它包含了构建JavaScript应用程序所需的一些核心组件、布局和工具。虽然它没有完整的Ext JS框架那么强大,但非常适合那些只需要部分功能或希望减少页面加载时间的项目。 Ext.ux....
在第一章“Core JavaScript and JavaScript Frameworks”中,作者首先带读者复习了核心JavaScript的知识,包括基础语法、对象模型和DOM操作等,为理解后续的Ext JS框架打好基础。接着,作者介绍了JavaScript框架的...
Ext JS 是一个强大的JavaScript库,主要用于构建富互联网应用程序(RIA)。这个压缩包包含了关于Ext JS 3.0的最新学习资料,特别强调了API文档、Cookbook和一本名为"Ext In Action"的书籍,这些都是深入理解和掌握...
EXT的核心库,ext-core.js,是一个轻量级的JavaScript库,提供了基本的UI组件和数据绑定功能,使得开发者能够创建复杂的交互式网页应用。EXT框架基于jQuery库,但扩展了更多面向对象的组件和布局管理功能。 EXT框架...
- 在项目的`public`目录中创建`js`文件夹,并将`ext-2.1`目录下的`adapter`、`resources`目录以及`ext-all.js`、`ext-core.js`等文件导入到`js`文件夹下。 3. **修改HTML宿主页面和模块配置文件** - 在`Register...
通常,这些依赖包括`ext-all.js`(或精简版`ext-core.js`)以及`ext-theme-neptune.js`(或其他主题文件)等。此外,还需要将`Upload.Dialog`的JavaScript文件和CSS样式文件引入到你的项目中。 接下来,创建一个`...
Ext JS是一个强大的JavaScript库,专为构建富互联网应用程序(Rich Internet Applications, RIA)而设计。这个库在v3.1.1版本中提供了一系列高级功能,使得开发者能够创建高效、响应式且交互性强的Web界面。Ext JS的...
3. 在项目的`public`目录下新建`js`文件夹,并将`ext-2.1`目录下的`adapter`、`resources`以及`ext-all.js`、`ext-core.js`文件复制到`js`文件夹下。 **步骤二:修改HTML宿主页面和模块配置文件** 1. 修改`...
Ext JS是一个用于构建交互式Web应用程序的JavaScript库,其结构树通常包括以下几个关键组成部分: 1. **核心库(Core Library)**:包含Ext JS的基本功能,如DOM操作、事件处理等。 2. **用户界面(UI)部件**:提供了...
这通常包括`ext-all.js`(包含所有组件和功能)或`ext-core.js`(基础组件集,适用于轻量级应用),以及对应的样式文件`ext-all.css`。这些文件确保了Ext的基本功能和样式正常工作。 2. 添加和删除事件 事件处理是...
EXT_JS是一种基于JavaScript的开源富客户端框架,专为构建交互式、数据驱动的Web应用程序而设计。EXT JS的核心是EXT Core,它提供了一套高级的DOM操作和事件处理功能。EXT JS实例通常包括一系列预定义的组件、布局、...
- `ext-core-debug.js`和`ext-core.js`:这些是ExtJS的核心库,包含基本的DOM操作、事件处理和一些基础组件,对于只需要使用一小部分功能的项目很有用。 3. **其他文件**: - `CHANGES.txt`:记录了ExtJS从上一...
- 在项目的`public`目录中创建`js`文件夹,并导入`ext-2.1`目录下的`adapter`、`resources`目录以及`ext-all.js`、`ext-core.js`文件。 2. **修改HTML宿主页面**: - 在`Register.html`文件中添加CSS和JS链接: ...