浅析Ext为Function扩展的五个方法
今天有兴趣查看了Ext的源码,就来浅析下Ext为Function扩展的五个方法吧!
首先来分析下createInterceptor,api是这么说的“创建一个拦截器函数,当该拦截器函数返回true时则执行原函数,否则不执行。”,首先看下它到源码:
var sayHi = function(name){ alert('Hi, ' + name);}// clicking the button alerts "Hi, Fred"new Ext.Button({ text: 'Say Hi', renderTo: Ext.getBody(), handler: sayHi.createCallback('Fred')});如果sayHi这过函数不需要传入参数,那么handler就可以直接使用sayHi函数了。
createDelegate,简单到说就是改变原函数到当前域,由第一过参数来指定,第二个参数是数组类型的,是原函数的参数,此外还有第三个参数,因为没什么用到,这里就不多说了。
defer,从源码可以知道,他对原函数提供了延迟处理。
createSequence,创建一过函数系列,第一个参数传入函数,第二个参数为传入到当前域,该参数只当做第一个参数的当前域。通过创建函数系列可以在执行原函数之前执行一些其他操作。