一个最简单的例子,清楚说明回调函数的作用和强大功能
2009-06-09 15:26
525 查看
考虑一个这样的例子:
假如某个项目的底层和高层是由不同的人员协同完成.底层负责数据的存取,高层负责数据的表示.当高层要用到某个模块的数据,于是他对底层人员说,我需要你们提供满足某种需求的数据,你给我提供一个接口.
底层的人员说:我给你提供数据,怎么展示和处理则是你的事情.我不可能为你每个需求都提供一个数据接口,我给你提供一个通过的接口.你得到数据,然后自己写函数去展示.由是经过协商,双方提供了一个这样的接口:
//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在一个目录下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script src="1.js" type="text/javascript"></script>
<title>无标题文档</title>
<script type="text/javascript">
function test(){
var p=document.getElementById("pp");
pp.innerText="";
var num=document.getElementById("score").value;
f(num,function(){ //匿名高层处理函数
if(num<60) alert("未及格!");
else if(num<=90) alert("该生成绩优良!");
else alert("该生成绩优秀!"); })
pp.innerText="by since1978 qq558064!"
}
</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>
运行此文件,可以看到效果
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ldfqq/archive/2008/12/21/3576525.aspx
假如某个项目的底层和高层是由不同的人员协同完成.底层负责数据的存取,高层负责数据的表示.当高层要用到某个模块的数据,于是他对底层人员说,我需要你们提供满足某种需求的数据,你给我提供一个接口.
底层的人员说:我给你提供数据,怎么展示和处理则是你的事情.我不可能为你每个需求都提供一个数据接口,我给你提供一个通过的接口.你得到数据,然后自己写函数去展示.由是经过协商,双方提供了一个这样的接口:
//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在一个目录下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script src="1.js" type="text/javascript"></script>
<title>无标题文档</title>
<script type="text/javascript">
function test(){
var p=document.getElementById("pp");
pp.innerText="";
var num=document.getElementById("score").value;
f(num,function(){ //匿名高层处理函数
if(num<60) alert("未及格!");
else if(num<=90) alert("该生成绩优良!");
else alert("该生成绩优秀!"); })
pp.innerText="by since1978 qq558064!"
}
</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>
运行此文件,可以看到效果
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ldfqq/archive/2008/12/21/3576525.aspx
相关文章推荐
- 一个最简单的例子,清楚说明回调函数的作用和强大功能
- 一个最简单的例子,清楚说明回调函数的作用和强大功能
- 一个最简单的例子,清楚说明回调函数的作用和强大功能
- 一个最简单的例子,清楚说明回调函数的作用和强大功能
- 一个简单的例子说明dynamic_cast的作用
- 学习oracle里面触发器的功能作用,举一个例子来说明:
- 以一个最简单的例子把OO的JavaScript说明白
- 一个简单的例子说明java中spring框架的依赖注入
- 一个简单、漂亮、功能强大的Android日志程序:logger
- .net c# 一个简单但是功能强大动态模板引擎
- android 一个小例子说明handler和AlertDialog的简单使用
- 实现一个配置简单功能强大的excel工具类搞定excel导入导出(二)
- 一个例子说明数据库union all的作用
- hibernate级联操 同时向2张表插入数据(一对多的关联,一个简单的例子说明)
- hibernate级联操 同时向2张表插入数据(一对多的关联,一个简单的例子说明)
- 一个功能覆盖率的简单例子
- 一个简单例子说明为什么C语言在2013年仍很重要
- 一个简单的例子说明Struts的工作流程
- 推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler
- [置顶] C语言回调函数一个简单的例子