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加载错误,这是咋回事
- S2SH、EXTJS、JSON调整后,EXTJS接收不到Struts2的Action传回的值,无语
- extjs 简单有关问题
- extjs+struts2解决办法
- ExtJs 处理 datetime 有关问题
- 【EXTJS】iframe里嵌套ext.window,怎样使ext.window弹出到iframe外,该怎么解决
- Tomcat + extjs 入门有关问题
- extjs ColumnModel 怎么实现表格中的数据小数点对齐
- Extjs 变量前的一个加号代表什么意思?解决方法
- extjs grid 怎么实现 行选中变色
- ExtJs 提交表单的小疑点
- 自己写的Asp.net Ajax,Jquery,ExtJs 三种Ajax技术框架比较,希望大家提提意见,多谢
- EXTJS grid的getView的refresh步骤报this.grid为空或不是对象
- EXTJS grid的getView的refresh方法报this.grid为空或不是对象解决办法
- Extjs 上拉菜单如何实现拼音输入进行检索
- ExtJs ComboBox 上拉数据较多时,怎么提供模糊搜索
- extjs grid.Panel 局部刷新,该如何处理
- extjs window 弹出框有关问题 怪事
- ExtJs ComboBox 下拉数据较多时,怎么提供模糊搜索
- 英语翻译(extjs 中的Ext.Component)解决方案
- Extjs Ext.data.Store使用有关问题
- ExtJs Combobox绑值有关问题
- EXTJS GridPanel怎么设置多选
- EXTJS 在 IE 中 数据丢失。求解决方法。
- extjs grid 动态设置行单元格可编辑
- EXTJS DateField 效果显示解决方法
- Extjs Menu 实现动态多级菜单
- extjs grid.Panel 局部刷新,该如何处理
- ExtJs ComboBox 上拉数据较多时,怎么提供模糊搜索