【ExtJS实践】之四 :关于ExtJS的createDelegate

在学习ExtJS官网提供的CardLayout的例子时,发现了createDelegete方法。

createDelegate( Object obj, Array args, Boolean/Number appendArgs ) 是Ext中的类Function的公共方法。将官网提供的API文档翻译过来就是:

功能:创建一个委派对象(回调),该对象的作用域指向obj。对于任何函数来说都是可以直接调用的。

参数项:
obj : Object
(可选的) 自定义的作用域对象。
args : Array
(可选的) 覆盖该次调用的参数列表。(默认为该函数的arguments)。

appendArgs : Boolean/Number
(可选的) 如果该参数为true,将args加载到该函数的后面,如果该参数为数字类型,则args将插入到所指定的位置。

 
返回值:
Function
新产生的函数。

为了更好的理解它的使用方法,我从网上引用了一个例子(原帖地址):

View Code
 1 Ext.onReady(function(){ 
 2   Ext.QuickTips.init() 
 3   var myclass=new Object(); 
 4   //myclass并没有alert方法,我们也不打算为它写一个alert方法 
 5   //我们希望它和window.alert有一样的行为,所以我们委托window来做  
 6   myclass.alert=window.alert.createDelegate(window); 
 7   //我们还希望他有个更漂亮的show方法和Ext.MessageBox的show功能一样 
 8   //所以我们又得委托给Ext.MessageBox来做这事了
 9   myclass.show=Ext.MessageBox.show.createDelegate(Ext.MessageBox); 
10   //我们的myclass也有alert和show方法了 
11   myclass.alert('alert1'); 
12   myclass.show({title:'title',msg:'message'}); 
13 });  
posted on 2012-06-18 17:28  EricZhen  阅读(2124)  评论(0编辑  收藏  举报