原文地址:
考虑一个这样的例子:
假如某个项目的底层和高层是由不同的人员协同完成.底层负责数据的存取,高层负责数据的表示.当高层要用到某个模块的数据,于是他对底层人员说,我需要你们提供满足某种需求的数据,你给我提供一个接口.
底层的人员说:我给你提供数据,怎么展示和处理则是你的事情.我不可能为你每个需求都提供一个数据接口,我给你提供一个通过的接口.你得到数据,然后自己写函数去展示.由是经过协商,双方提供了一个这样的接口:
//data表示底层提供的数据源,funcName表示高层的调用函数
function(data,funcName){
1.data属于情形1,由底层处理;
2.data属于情形2,由高层处理,怎么处理呢?利用高层提供的函数funcName处理
.....
}
我可能还没说清楚,我们看个例子一下子就明白了
//假如提供的数据源是一整数,为某学生的分数,当num<=0,由底层处理,当n>0时由高层处理.
//将下面这个函数拷贝下来存盘为1.js
function f(num,callback){ if(num<0) { alert("调用低层函数处理!"); alert("分数不能为负,输入错误!"); }else if(num==0){ alert("调用低层函数处理!"); alert("该学生可能未参加考试!"); }else{ alert("调用高层函数处理!"); callback(); } }
//将下面这个test.html文件存盘与1.js在一个目录下:
无标题文档 回调函数示例:当学生成绩score<=0分时候,由底层处理;当score>0时,由高层处理。
请输入学生成绩
参数:
无标题文档 回调函数示例:当学生成绩score<=0分时候,由底层处理;当score>0时,由高层处理。
请输入学生成绩
完