javascript中的回调函数

考虑一个这样的例子:
假如某个项目的底层和高层是由不同的人员协同完成.底层负责数据的存取,高层负责数据的表示.当高层要用到某个模块的数据,于是他对底层人员说,我需要你们提供满足某种需求的数据,你给我提供一个接口.

底层的人员说:我给你提供数据,怎么展示和处理则是你的事情.我不可能为你每个需求都提供一个数据接口,我给你提供一个通过的接口.你得到数据,然后自己写函数去展示.由是经过协商,双方提供了一个这样的接口:

      function(data,funcName){ 

       1.data属于情形1,由底层处理;
 
        2.data属于情形2,由高层处理,怎么处理呢?利用高层提供的函数funcName处理
 
    .....
 
      }

1.js代码:

function f(num,callback){
 if(num<0)  { 
  alert("调用低层函数处理!");
  alert("分数不能为负,输入错误!"); 
 }else if(num==0){
     alert("调用低层函数处理!");
   alert("该学生可能未参加考试!");
 }else{
    alert("调用高层函数处理!");
  callback();
 }
}

1.htm代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script src="1.js" type="text/javascript"></script>
<title>无标题文档</title>
</head>

<body>
<title>无标题文档</title>
<script type="text/javascript">
 function test(){
     var p=document.getElementById("pp");
  p.innerText="";
     var nums=document.getElementById("score").value;
  f(nums,function() { //匿名高层处理函数
   if(nums<60){ 
   alert("未及格!");
   }
   else if(nums<=90){ 
   alert("该生成绩优良!");
   }
   else {
	   alert("该生成绩优秀!"); 
   }
	   }
	   )
  p.innerText="this is 2765237"
 }
</script>
</head>
 
<body>
<p>
回调函数示例:当学生成绩score<=0分时候,由底层处理;当score>0时,由高层处理。
</p>
请输入学生成绩<input  type="text"  id="score"> 
<input type="button" onClick="test()" value=" 看看结果">
<p id="pp"></p>

</body>
</html>

Leave a Reply

(will not be published)