时间:2021-07-01 10:21:17 帮助过:5人阅读
var sayHi = function(name){
alert('Hi'+name);
}
new Ext.Button({
text: 'say hi',
handler: sayHi.createCallback('jinshan')
});
createCallback的作用是为原有的参数设置默认参数。在上例中,在使用createCallback时就已经将‘jinshan' 设置给对应的回调函数,单击按钮后将参数传递给sayHi().
2、createDelegate()会创建当前函数的代理函数。
如:
代码如下:
var sayHi = function(name){
alert(name - this.text); //this.text表示btn函数的text值Say Hi,
}
var btn = new Ext.Button({
text: 'Say Hi'
});
btn.on('click', sayHi.createDelegate(btn, ['jisnh']));
这个创建了代理, sayHi指向了btn。。如果btn改成其它对象,则sayHi将会自动转到其它对象去。
3、createInterceptor(fun, scope);为当前函数设置拦截器,类似 AOP 概念。如:
代码如下:
var sayHi = function(name){
alert(name);
}
sayHi('1');
var sayHito = sayHi.createInterceptor(function(name){
return name == '2';
});
sayHito(1) ;//没有提示
sayHito(2);//弹出2
拦截器会在原函数执行之前执行,并且只有在拦截器返回true时才会去执行原函数。