Ext中Function类新增了一些比较实用的方法
createInterceptor( Function fcn, [Object scope] ) : Function
创建阻断方法,如果fcn返回false,原方法将不会被执行
( Function fcn, [Object scope] ) : Function
创建组合方法,执行原方法+fcn
defer( Number millis, [Object obj], [Array args], [Boolean/Number appendArgs] ):Number
定时执行,隔millis毫秒后执行原方法
一下是写的一些一个例子页面
exttry.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" type="text/css" href="../resources/css/ext-all.css"/>
<!-- GC --><!-- LIBS -->
<script type="text/javascript" src="../adapter/ext/ext-base.js">...
</script>
<!-- ENDLIBS -->
<script type="text/javascript" src="../ext-all-debug.js">...
</script>
<script type="text/javascript" src="exttry.js"></script>
<title>ext try</title>
</head>
<body>
<div id="logtxt"></div>
<div id="showdefer"></div>
</body>
</html>
exttry.js
function log(msg)...{
var logtxt = Ext.get("logtxt");
logtxt.update(logtxt.dom.innerHTML+'<br>'+msg);
}
function clearlog()...{
var logtxt = Ext.get("logtxt");
logtxt.update('');
}
Ext.onReady(function()...{
var commonfunc = function(strfunc)...{
log('此方法为示例通用方法'+strfunc);
}
//测试创建createInterceptor阻断方法,阻断方法返回值为false
var func1 = commonfunc.createInterceptor(function()...{
log('阻断方法,返回值为false');
return false;
});
func1('func1');
//测试创建createInterceptor阻断方法,阻断方法返回值为true
var func2 = commonfunc.createInterceptor(function()...{
log('阻断方法,返回值为true');
return true;
});
func2('func2');
//测试顺序执行方法
var func3 = commonfunc. (function()...{
log('顺序执行方法');
});
func3('func3');
//测试defer方法,推迟3秒执行
var deferfunc = function()...{
var showdefer = Ext.get('showdefer');
showdefer.update('deferfunc方法执行');
}
deferfunc.defer(3000);
}
);
执行结果:
阻断方法,返回值为false
阻断方法,返回值为true
此方法为示例通用方法func2
此方法为示例通用方法func3
顺序执行方法
deferfunc方法执行