在JavaScript中,函数是可以带有方法的对象。Ext库提供的扩展会对Function对象——包括内建的函数、你定义的函数,这些都会继承。添加这些的方法能方便地绑定函数到特定的作用域。
作用域的重要性
在 JavaScript中,你引用一函数,使之成为handler,和在C中使用函数指针有相类似的方式。这意味着默认情况下没有对象是绑定到对象的,并且 this这个变量会是浏览器的window对象。如果要写OO的Javascript,那么这将会引起很多的误解和错误的出现。下列的Function方法允许你绑定一个对象到其所在的函数中(其this的指向引用),连同参数列表绑定到函数中。
委托和回调
createDelegate
createDelegate([http://extjs.com/deploy/ext/docs/output/Function.html#createDelegate API参考])允许你将对象绑定一个在其作用域下的函数,亦可将特定的多个参数,写成数组传入到那个函数中去。可选地,这需要一个参数来指定是否将参数列表传入到这个数组中去。如果这个第三的参数没有传入,数组将是整个的参数列表。
<source lang="javascript">
var fn = func1.createDelegate(scope, [arg1,arg2], true)
fn(a,b,c) === scope.func1(a,b,c,arg1,arg2);
var fn = func1.createDelegate(scope, [arg1,arg2])
fn(a,b,c) === scope.func1(arg1,arg2);
var fn = func1.createDelegate(scope, [arg1,arg2], 1)
fn(a,b,c) === scope.func1(a,arg1,arg2,b,c);
</source>
createCallback
createCallback ([http://extjs.com/deploy/ext/docs/output/Function.html#createCallback API参考]) 允许你将多个参数绑定到一个函数。指定参数作为createCallback的变量便可。
Java代码 复制代码
<source lang="javascript">
var fn = func1.createCallback(arg1, arg2);
fn() === func1(arg1, arg2)
</source>
AOP功能
EXT库亦提供一些基础性的 aspect-oriented programming(AOP面向切面编程)机制。这意味着你选择的函数可在另一函数的之前或之后被调用,并根据外部结果动态改变执行流程链。当你欲扩展Ext内建函数的行为(behavior)时,利用该机制可无须继承或重载原Ext版本。使用下列两个方法,你可在某一函数之前或之后加上你想实现的功能。
createInterceptor
createInterceptor ([http://extjs.com/deploy/ext/docs/output/Function.html#createInterceptor API参考])允许你指定一个函数在这个函数<b>之前</b>调用。原函数的所有参数都会传入给它。如果它返回false,原函数将不会被调用。作用域的参数可选地使用。
createSequence
createSequence ([http://extjs.com/deploy/ext/docs/output/Function.html#createSequence API参考])允许你指定一个函数在这个函数<b>之后</b>调用。原函数的所有参数都会传入给它。作用域的参数可选地使用。
延时执行
Ext提供了一个便捷的方法来封装JavaScript内置方法setTimeout。defer函数([http://extjs.com/deploy/ext/docs/output/Function.html#defer API参考])允许你在某一定时间间隔之后执行函数,而且可指定执行所在的作用域,连同多个参数的传入一同被调用。
分享到:
相关推荐
ExtJS3 升级到 ExtJS4 方案 ExtJS3 升级到 ExtJS4 需要修改大量代码,主要是因为 ExtJS4 配备了一类新的系统,不向后兼容...ExtJS3 升级到 ExtJS4 需要修改大量代码,需要我们重新学习和适应 ExtJS4 的新特性和变化。
- `success`和`failure`回调函数用于处理请求成功或失败的情况。还可以设置`beforeSend`在请求发送前执行,`complete`在请求完成后执行,无论成功与否。 5. **请求头和参数设置**: 可以通过`headers`配置项添加...
基于ExtJS的工作流设计器,利用了ExtJS的强大组件模型和交互性,为用户提供了一个直观的方式来创建和编辑流程图。这样的设计器通常包括以下关键组成部分: 1. **组件库**:设计师需要一个包含各种工作流元素(如...
这两个版本在Web开发领域都有着广泛的运用,它们各自拥有不同的特性和改进,对于理解ExtJS的发展历程和选择适合项目需求的版本至关重要。 首先,我们来看ExtJS 2.2。这个版本是ExtJS早期的一个稳定版,发布于2008年...
本书作为Extjs的中文教程,旨在帮助读者快速上手Extjs,其内容涉及Extjs的基础知识和实际应用。 #### 2. JavaScript基础知识 - **类的定义**: Extjs中的类继承于JavaScript原生类,通过Ext.extend来定义。这是...
7.6版本是ExtJS的一个重要更新,带来了诸多新特性、性能优化以及对现代浏览器和设备的更好支持。 SDK(Software Development Kit)是ExtJS 7.6的核心组成部分,它包含了开发、调试和部署ExtJS应用所需的所有资源。...
3. 初始化KindEditor:在ExtJS的回调函数中,使用KindEditor的API来初始化编辑器,指定容器元素(通常是ExtJS组件的DOM元素)。 4. 处理交互:可能需要监听KindEditor的事件,比如内容改变,然后更新ExtJS的数据模型...
ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门ExtJS快速入门 ExtJS快速入门 ExtJS...
- **监听提交事件**:使用`form.submit()`方法触发表单提交,传入一个包含回调函数的对象,处理成功和失败的情况。 - **处理服务器响应**:在回调函数中,可以访问到服务器返回的数据,进行后续的业务逻辑处理。 ...
7. **事件监听和回调**:在前后台交互过程中,ExtJS的事件机制非常关键。开发者可以监听Store或Model的相关事件,如`load`、`update`、`beforeSync`等,以便在数据操作前后执行相应逻辑。 8. **安全性与性能优化**...
在文件上传过程中,服务器端需要处理文件流,并可以通过回调机制向客户端发送进度信息。 为了实现进度条,需要在服务器端记录并定期更新文件上传的进度,然后通过AJAX请求将这些信息传递到客户端。ExtJS的Ajax请求...
这个“ExtJS3.3中文API.CHM”文档是为中文用户特别准备的,帮助他们更好地理解和使用ExtJS 3.3的各种功能。 CHM文件,全称是Microsoft Compiled HTML Help,是微软推出的一种帮助文件格式,它将HTML文件打包成单一...
标题中的"ExtJS经典皮肤集合"指的是该框架中包含的一系列预设的用户界面主题,这些皮肤允许开发者快速改变应用程序的外观和感觉,以满足不同用户或项目的需求。 描述中提到的"完整演示包"包含了多种皮肤的HTML文件...
这个工具允许开发者通过拖放组件和直观地调整属性来设计用户界面,从而自动生成ExtJS脚本。 1. **ExtJS框架**:ExtJS是Sencha公司开发的一个开源JavaScript库,它提供了大量的预定义组件,如表格、面板、菜单、按钮...
extjs电子书,extjs电子书,extjs电子书,extjs电子书
在标题和描述中提到的“Extjs4小图标”指的是ExtJS 4版本中使用的一系列图形图标,这些图标用于增强应用程序的视觉效果,提供用户友好的操作指示。 1. **图标分类**: - 图标通常分为不同的类别,如操作图标(比如...
EXTJS的强大在于其丰富的组件库和高度可定制化,学习EXTJS不仅需要理解其API,还需要实践和调试以提升对框架的理解。随着对EXTJS的深入学习,开发者可以构建复杂、功能完善的Web应用程序。后续章节将分享更多关于...
ExtJS教程全面介绍了ExtJS框架的基本功能和高级特性,适用于有Web开发经验的开发者,尤其是希望快速构建丰富用户界面的人员。ExtJS是一个基于JavaScript的开源前端框架,它提供了丰富的用户界面组件和数据处理机制,...
适合ExtJs开发人员extjs技术上手以及深入
EXTJS 是一个强大的JavaScript前端框架,它主要用于构建富客户端应用,提供丰富的用户界面组件和灵活的可定制性。EXTJS 的核心在于其组件化的架构,允许开发者构建复杂的UI布局和功能丰富的应用程序。以下是对EXTJS...