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 是一个强大的JavaScript库,专门用于构建富客户端应用程序,特别是Web应用的用户界面。它提供了丰富的组件模型、数据绑定机制以及丰富的API,使得开发者能够创建功能丰富的动态表单。在"动态添加表单"这个主题...
源码分析可能是博客文章的重点,它可能涵盖了ExtJS Tab Panel的内部工作原理,例如组件的构造函数、渲染流程、事件处理等。通过源码学习,开发者可以更深入地理解ExtJS的工作机制,以便于进行自定义扩展和性能优化。...
10. **工具和源码分析**: 标签中的“源码”提示我们可以直接查看Extjs的源代码,学习其内部实现。这有助于理解类系统的构建细节,提升开发技能。 综上所述,手工打造Extjs的类系统是一项涉及到JavaScript面向对象...
- **揭示源代码**:源码分析帮助理解EXT如何实现其功能。 - **发布Ext源码时的一些细节**:包括版本控制、编译流程等内容。 - **适配器Adapters**:适配器模式是EXT中常用的设计模式之一,用于连接不同类型的后端...
在EXTJS3中,`Ext....通过以上分析,我们可以看出,`EXTJS3`中的`Ext.PagingToolbar`结合快捷键应用,可以显著提升数据浏览的效率和用户体验。熟练掌握这种技巧,将有助于开发出更高效、易用的EXTJS应用程序。
本篇文章将深入探讨如何在ExtJS中使用DatetimeMenu组件,包括设置时、分选项,以及通过源码分析来理解其工作原理。 首先,我们要了解DateTimeMenu组件的基本结构。DateTimeMenu是基于Ext.menu.Menu类构建的,它扩展...
在ExtJS中,`Ext.extend()` 是一个核心的函数,用于实现类之间的继承机制。它允许你创建新的类(子类),这些类将继承另一个类(父类)的属性和方法。这个功能对于构建复杂的JavaScript应用程序至关重要,因为它提供...