`

ExtJs 委托与回调(createDelegate && createCallback)

阅读更多
author=Ext Community(译者:[http://extjs.com/forum/member.php?u=572 Frank Cheung])
summary=Function

在JavaScript中,函数是可以带有方法的对象。Ext库提供的扩展会对Function对象——包括内建的函数、你定义的函数,这些都会继承。添加这些的方法能方便地绑定函数到特定的作用域。

<h3>作用域的重要性</h3>
在JavaScript中,你引用一函数,使之成为handler,和在C中使用函数指针有相类似的方式。这意味着默认情况下没有对象是绑定到对象的,并且this这个变量会是浏览器的window对象。如果要写OO的Javascript,那么这将会引起很多的误解和错误的出现。下列的Function方法允许你绑定一个对象到其所在的函数中(其this的指向引用),连同参数列表绑定到函数中。

<h3>委托和回调</h3>
<h4>createDelegate</h4>
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>


<h4>createCallback</h4>
createCallback ([http://extjs.com/deploy/ext/docs/output/Function.html#createCallback API参考]) 允许你将多个参数绑定到一个函数。指定参数作为createCallback的变量便可。
'''例子''':
<source lang="javascript">
var fn = func1.createCallback(arg1, arg2);
fn() === func1(arg1, arg2)
</source>

<h3>AOP功能</h3>

EXT库亦提供一些基础性的 aspect-oriented programming(AOP面向切面编程)机制。这意味着你选择的函数可在另一函数的之前或之后被调用,并根据外部结果动态改变执行流程链。当你欲扩展Ext内建函数的行为(behavior)时,利用该机制可无须继承或重载原Ext版本。使用下列两个方法,你可在某一函数之前或之后加上你想实现的功能。

<h4>createInterceptor</h4>
createInterceptor ([http://extjs.com/deploy/ext/docs/output/Function.html#createInterceptor API参考])允许你指定一个函数在这个函数<b>之前</b>调用。原函数的所有参数都会传入给它。如果它返回false,原函数将不会被调用。作用域的参数可选地使用。

<h4> createSequence</h4>
createSequence ([http://extjs.com/deploy/ext/docs/output/Function.html#createSequence API参考])允许你指定一个函数在这个函数<b>之后</b>调用。原函数的所有参数都会传入给它。作用域的参数可选地使用。

<h4>延时执行</h4>
Ext提供了一个便捷的方法来封装JavaScript内置方法setTimeout。defer函数([http://extjs.com/deploy/ext/docs/output/Function.html#defer API参考])允许你在某一定时间间隔之后执行函数,而且可指定执行所在的作用域,连同多个参数的传入一同被调用。

http://extjs.com/learn/Manual:Utilities:Function_%28Chinese%29
分享到:
评论

相关推荐

    EXTjs详细学习手册(java&.net).doc

    EXTjs是一个强大的Ajax框架,专用于构建具有丰富用户界面的Web应用程序。它采用JavaScript编写,与后端技术无关,因此可以在Java、.NET、PHP等多种开发环境中使用。EXTjs因其精美且高度可定制的界面而受到开发者和...

    extjs&可视化开发& 智能提示

    EXTJS是一种强大的JavaScript库,专用于构建富客户端的Web应用程序。它提供了丰富的组件库,包括数据绑定、布局管理、图表等功能,使得开发者可以构建出功能强大且用户界面友好的Web应用。在“可视化开发”这一领域...

    ExtJs4.1.1a 异步树&级联选择

    说明:本例主要实现在树节点数据过多的情况下对数据进行异步请求,并且在请求数据返回前台的同时实现级联选择。使用ExtJs版本为4.1.1a,在struts2下测试通过。例子仅供提供思路,简单易懂,不负责代码优化,哈哈!

    ExtJS Ext.MessageBox.alert&#40;&#41;弹出对话框详解

    Ext.MessageBox是一个工具类,他继承自Obiect对象,用来生成各种风格的信息提示对话框,Ext.Msg是该类的别名,使用Ext.MessageBox和用Ext.Msg效果是一样的,而后者提供了更简单的方式。

    extjs数据存储与传输详解

    ### Extjs数据存储与传输详解 #### 一、Ext.data简介 **Ext.data**是Extjs框架中的核心组件之一,负责处理数据的加载、存储、转换以及与后端服务器之间的通信。它提供了一系列用于管理数据的类,包括Store、Reader...

    extJs3升级extjs4方案

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

    EXTJS与.NET开发

    EXTJS与.NET的结合使用,使得开发者可以利用EXTJS的强大前端能力,与.NET的高效后端处理相结合,创建出功能强大且用户体验良好的Web应用。以下是一些关于EXTJS与.NET开发的关键知识点: 1. **EXTJS组件与.NET MVC**...

    ExtJS与.NET结合开发实例

    ExtJS与.NET结合开发实例ExtJS与.NET结合开发实例

    ExtJS实用开发指南&ExtJS中文文档-API(CHM)

    ExtJS实用开发指南&ExtJS中文文档-API

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

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

    轻松搞定Extjs 带目录

    Extjs概念与目录结构 Extjs是一个基于JavaScript的框架,用于构建交互式的web应用。本书作为Extjs的中文教程,旨在帮助读者快速上手Extjs,其内容涉及Extjs的基础知识和实际应用。 #### 2. JavaScript基础知识 -...

    ExtJs与.Net结合开发实例

    在IT行业中,Web开发是一项关键任务,而ExtJS与.Net框架的结合使用为开发者提供了强大的工具来构建功能丰富的、交互式的Web应用程序。本实例聚焦于如何利用这两个技术进行协同开发,特别是关注于数据网格(grid)的...

    ExtJS与.NET结合开发实例-殷良胜

    - **错误处理**:利用.NET的异常处理机制和ExtJS的错误处理回调,确保前后端交互的稳定性。 6. **学习与实践**: 这些实例不仅提供了代码参考,还可能包括详细的步骤说明和问题解决策略,帮助开发者深入理解如何...

    ExtJs3.3中文API.CHM_extjs3.3中文文档_

    ExtJS是一个广泛使用的JavaScript库,专门用于构建富客户端应用程序。版本3.3是该库的一个稳定版本,提供了许多功能和组件,使得Web开发者能够创建功能丰富的、交互性强的用户界面。这个“ExtJS3.3中文API.CHM”文档...

    ExtJs4.0 表单提交Demo

    - **监听提交事件**:使用`form.submit()`方法触发表单提交,传入一个包含回调函数的对象,处理成功和失败的情况。 - **处理服务器响应**:在回调函数中,可以访问到服务器返回的数据,进行后续的业务逻辑处理。 ...

    包含各种类型的extjs小图标,Extjs4小图标

    ExtJS 是一个流行的JavaScript框架,主要用于构建富客户端的Web应用程序。它提供了丰富的组件库、数据管理功能以及强大的用户界面(UI)元素。在标题和描述中提到的“Extjs4小图标”指的是ExtJS 4版本中使用的一系列...

    Extjs kindeditor整合 demo

    3. 初始化KindEditor:在ExtJS的回调函数中,使用KindEditor的API来初始化编辑器,指定容器元素(通常是ExtJS组件的DOM元素)。 4. 处理交互:可能需要监听KindEditor的事件,比如内容改变,然后更新ExtJS的数据模型...

    EXTjs图开编程EXTJS

    8. **集成其他EXTJS组件**:学习如何将图表与其他EXTJS组件(如表格、面板)一起使用,构建完整的应用界面。 通过深入学习并实践EXTJS的图形编程,开发者能够构建出具有专业级图形展示能力的Web应用,为用户提供...

Global site tag (gtag.js) - Google Analytics