【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 });