javascript回调

javascript在回调时要验证方法是否存在一般使用 eval(functionname),当functionname不是字符串而是变量时。就不能直接使用
eval(functionname),要实现动态调用函数,用可以通过2种方式可以回调变量函数:
1.通过捕获异常
<script type="text/javascript">
function dtmf(cccc,callback){

if(callback){
	try {
	if(typeof(eval(callback))=="function") {
		eval(callback)(callback,'ccc');
	}
	}catch(e){
	   alert("not function"); 
	}
}else{
	alert("aaaa"); 
}

}
function test1(str,aa){
alert(str+aa);
}
function test2(str){
alert(str);
}
</script>

2. 通过eval字符串
<script type="text/javascript">
function dtmf(callback){


if(eval("typeof("+callback+")")=="function") {
		eval(callback)(callback);
	
}else{
	alert("aaaa"); 
}

}
function test1(str){
alert(str);
}
function test2(str){
alert(str);
}
</script>

你可能感兴趣的:(JavaScript,script)