`

[ExtJS3.2源码每天一小时]ExtJS中创建回调createCallBack与createDelegate的异同(之十)

EXT 
阅读更多
createCallBack与createDelegate是ExtJS中创建回调函数的两个方法
也许很多人并没有接触到这两个方法,因为在使用ExtJS的过程中,如果对ExtJS研究的不是特别深入,这两个方法基本上不会浮出水面,或许有的人从官方或者其他人写的例子中看到过这两个方法,就模仿着例子开始使用它们了,但是它们究竟是做什么的,它们两个的异同有哪些?今天我们就来说一说。


在看下面的内容之前,请看我发布的另一篇博文,ExtJS中对Function类的扩展。

1.createCallBack与createDelegate的相同点:
  (1)二者的用途皆为创建一个带有指定参数的回调函数
  (2)二者都采用闭包机制,根据原函数创建了一个新的函数

2.createCallBack与createDelegate的不同点:
  (1)createCallBack 是在创建该回调函数时指定参数,执行时传入的参数不再有效:
       例如:
      
         function testFunc(arg){
             alert(arg);
         }
         //创建回调函数时,制定参数arg为'aa'
         var callBack = testFunc.createCallBack('aa');
         //执行时callBack再传入的参数不再有效
          callBack('bb');//打出aa
         callBack(); //这样调用即可
      

      另:createCallBack不可指定回调函数的作用域,它默认的作用域为window
    
   (2)createDelegate 创建回调函数时可以指定参数,执行时也可以传入参数,并且可以传入作用域。
     createDelegate 可以传入三个参数:  obj, args, appendArgs
    obj:对应回调函数的作用域
    args:创建回调函数传入的参数
     appendArgs:是否追加参数,意思是如果appendArgs为true,那么args这些参数将会追加到该回调函数执行时传入的参数列表里,如果appendArgs为false,那么args参数将无效。如果appendArgs为数字值,那么默认追加,追加的到数组中的位置即appendArgs的值
      例如:
    
        function testFunc(arg1,data,arg3){
            this.dom.innerHTML=data['name'];//改变节点内容,假设data有name属性
            alert(arg1);//打出‘aa’
            alert(arg3);//打出‘bb’
        } 
         var store = new Ext.data.JsonStore(.....);
        var testSpan = Ext.get('testSpan');
        //作用域传入testSpan那么testFunc执行时this就是指的testSpan了,
         //args参数指定为['aa']
        //appendArgs指定为true 
        //执行时 arg1传入的是'aa'
        var callBack = testFunc.createDelegate(testSpan,['aa'],true);

        store.on('load',function(){
          //通过回调函数执行再传入两个参数
            //store.getAt(0)对应data
          //bb对应arg3
          callBack(store.getAt(0),'bb');
        })
         
     

      
分享到:
评论
1 楼 clskkk2222 2012-03-28  

相关推荐

    ExtJS3.2正式版

    ExtJS3.2正式版 货真价实 ExtJS3.2正式版

    extjs3.2资源压缩包

    ExtJS 3.2 是一个历史悠久的JavaScript框架,主要用于构建富客户端Web应用程序。这个资源压缩包包含了一系列用于创建交互式、动态用户界面的组件和工具。让我们深入了解一下ExtJS 3.2的主要特点和功能。 1. **组件...

    Extjs3.2中文帮助手册

    ExtJS是一个基于JavaScript的开源富客户端框架,广泛用于...总的来说,"Extjs3.2中文帮助手册"是开发者掌握和使用ExtJS 3.2不可或缺的资源,通过深入学习和实践手册中的内容,开发者可以有效地提升开发效率和应用质量。

    extjs3.2api中文

    "extjs3.2api中文"标题表明这是一个中文版的ExtJS 3.2 API文档,对于中文开发者来说,能够更方便地理解和使用这个框架。 "BLANK_IMAGE_URL"是ExtJS中的一个常量,它通常被用作一个占位符图像的URL。这个1×1像素的...

    ExtJs3.2官方原版

    这个“ExtJs3.2官方原版”是该库的一个早期版本,提供了一整套用于创建动态、交互式用户界面的工具和组件。在ExtJs3.2中,开发者可以利用其丰富的组件库、数据绑定机制以及强大的布局管理来构建复杂且高性能的Web...

    ExtJs3.2+中文API

    ExtJs3.2+中文API 便于开发查找API 很方便

    安装Extjs的插件spket,extjs3.2版.doc

    首先,确保你已下载了ExtJS 3.2和Spket的源码。ExtJS 3.2通常包含一个名为`ext.jsb`的文件,这个文件是Spket识别ExtJS库的关键。接下来,按照以下步骤安装Spket插件: 1. **以Eclipse插件形式安装**: - 打开...

    ExtJS3.2列布局

    "ExtJS3.2列布局"是这个框架中的一个重要概念,尤其在处理form表单时非常实用。 列布局(Column Layout)是ExtJS的一种布局策略,它允许你在同一行内创建多个并排显示的区域,每个区域可以包含不同的组件,如文本框...

    ExtJs 3.2 中文API帮助文档

    ExtJS是一种主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框架。功能丰富,无人能出其右。无论是界面之美,还是功能之强,ext的表格控件都高居榜首。 ExtJs 3.2 中文API帮助文档,CHM离线的,希望对...

    EXTJS3.2-3.3中文API和包

    EXTJS 3.2-3.3版本是EXTJS框架的一个重要阶段,它提供了大量的组件、布局、数据绑定和事件处理机制,为开发者带来了强大的功能和灵活性。 EXTJS 3.2-3.3中文API文档是学习和开发EXTJS应用的重要参考资料。CHM...

    extjs3.2 中文API 完整版

    网络上流传很多exjs 中文API,都神马东西,下载都没用。现在鄙人从脚本娃娃群分享的完整API上传分享给大家!

    ExtJS 3.2 聊天室程序(类Q_Q群)

    ExtJS 3.2 聊天室程序(类Q_Q群)

    ExtJS3.2的各种例子

    我收集了各种ExtJS的例子,有3.2还有2.5,还有所有“掏钱学ExtJS”的例子,绝对物超所值。

    ExtJS3.2中文API与示例

    Ext3.2中文API及代码示例,经典的API翻译,丰富的代码示例 就在这里等着你下!

    ext 3.2源码

    EXT 3.2源码分析 EXT JS是一个流行的JavaScript库,专为构建富客户端Web应用程序而设计。EXT 3.2版本是EXT JS历史上的一个重要里程碑,它包含了许多功能改进和性能优化。深入理解EXT 3.2的源码对于开发者来说至关...

    Ext3.2源码、API、及Demo.rar

    在"Ext3.2源码"中,你可以深入理解ExtJS的内部工作机制。源码通常包括各种组件(如Grid、Form、Panel等)、布局管理器、数据绑定机制、事件处理以及核心类库等。通过阅读源码,开发者可以学习到如何自定义组件、优化...

    Eclipse安装Extjs3.2的spket插件(附插件和Ext文件)

    在本文中,我们将详细介绍如何在Eclipse环境中安装适用于ExtJS 3.2的Spket插件,以便于JavaScript开发和代码提示。首先,让我们了解一下Eclipse、ExtJS和Spket这三个关键概念。 Eclipse是一款开源的集成开发环境...

    ExtJS 3.2的中文参考手册

    ExtJS 3.2版本是一个成熟且稳定的版本,在此版本中包含了丰富的组件和功能,非常适合初学者入门以及资深开发者深入研究。 - **适用人群**: 无论是JavaScript的新手还是有一定经验的开发者,ExtJS 3.2都能提供足够的...

    extjs3.2中文API文档

    这是一个extjs3.2的中文API文档,可以用于学习。

    extjs最新版 3.2版本

    EXTJS 3.2版本是EXTJS发展过程中的一个关键节点,它提供了一套全面的UI解决方案,为开发者构建功能强大、用户体验良好的Web应用奠定了基础。通过深入理解和熟练运用EXTJS 3.2,开发者可以有效地提升工作效率,创造出...

Global site tag (gtag.js) - Google Analytics