Ext.apply(Function.prototype, {
//创建拦截器,也就是在函数执行想运行拦截器,当拦截器返回false则不往下执行
/*var sayHi = function(name){
alert('Hi, ' + name);
}
var sayHiToFriend = sayHi.createInterceptor(function(name){
return name == 'Brian';
});
*/
createInterceptor : function(fcn, scope){
var method = this;
return !Ext.isFunction(fcn) ?
this :
function() {
var me = this,
args = arguments;
fcn.target = me;
fcn.method = method;
return (fcn.apply(scope || me || window, args) !== false) ?
method.apply(me || window, args) :
null;
};
},
//创建回调函数
/*
var sayHi = function(name){
alert('Hi, ' + name);
}
sayHi.createCallback('Fred')
*/
createCallback : function(/*args...*/){
// make args available, in function below
var args = arguments,
method = this;
return function() {
return method.apply(window, args);
};
},
//委派
createDelegate : function(obj, args, appendArgs){
var method = this;
return function() {
var callArgs = args || arguments;
if (appendArgs === true){
callArgs = Array.prototype.slice.call(arguments, 0);
callArgs = callArgs.concat(args);
}else if (Ext.isNumber(appendArgs)){
callArgs = Array.prototype.slice.call(arguments, 0); // copy arguments first
var applyArgs = [appendArgs, 0].concat(args); // create method call params
Array.prototype.splice.apply(callArgs, applyArgs); // splice them in
}
return method.apply(obj || window, callArgs);
};
},
//延迟执行
/*
var sayHi = function(name){
alert('Hi, ' + name);
}
sayHi.defer(2000, this, ['Fred']);
*/
//millis毫秒数,args调用函数的参数,appendArgs附加参数
defer : function(millis, obj, args, appendArgs){
var fn = this.createDelegate(obj, args, appendArgs);
if(millis > 0){
return setTimeout(fn, millis);
}
fn();
return 0;
},
//创建队列函数,
createSequence : function(fcn, scope){
var method = this;
return !Ext.isFunction(fcn) ?
this :
function(){
var retval = method.apply(this || window, arguments);
fcn.apply(scope || this || window, arguments);
return retval;
};
}
})
详细解决方案
extjs源码分析-012(Funtion扩张)
热度:280 发布时间:2012-10-08 19:54:56.0
相关解决方案
- Extjs grid 失去选中行的列数据
- extjs 后台有数据,但是返回到页面为空,jsonStore加载错误,这是咋回事
- 【EXTJS】iframe里嵌套ext.window,怎样使ext.window弹出到iframe外,该怎么解决
- Tomcat + extjs 入门有关问题
- extjs ColumnModel 怎么实现表格中的数据小数点对齐
- Extjs 变量前的一个加号代表什么意思?解决方法
- extjs grid 怎么实现 行选中变色
- EXTJS grid的getView的refresh步骤报this.grid为空或不是对象
- EXTJS grid的getView的refresh方法报this.grid为空或不是对象解决办法
- ExtJs ComboBox 上拉数据较多时,怎么提供模糊搜索
- extjs window 弹出框有关问题 怪事
- ExtJs ComboBox 下拉数据较多时,怎么提供模糊搜索
- EXTJS GridPanel怎么设置多选
- EXTJS 在 IE 中 数据丢失。求解决方法。
- extjs grid 动态设置行单元格可编辑
- EXTJS DateField 效果显示解决方法
- Extjs Menu 实现动态多级菜单
- ExtJs ComboBox 上拉数据较多时,怎么提供模糊搜索
- Extjs TreeStore 的施用
- Extjs TreeStore 的应用
- 会用jquery,dwr,再有没有必要学习dojo,extjs
- extjs+php ,大家来看看是小弟我的json输出的有关问题,还是小弟我的extjs没有写对呢
- extjs grid表的显示有关问题
- extJS 在IE8里边什么都不显示
- EXTJS 显示图片有关问题 来个大神指教下 多谢
- Extjs 前后台数据交互有关问题
- ExtJS 怎么嵌入百度mapAPI
- EXTJS 页面得不到JSON值解决方案
- ExtJS 4 window.Window窗体怎么调用用构造方法传递过来的值
- Extjs textfield 只读的景况