• 关于javascript中的回调函数


    原文地址:http://blog.csdn.net/sicluoyi/article/details/1737969

    考虑一个这样的例子:

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

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

     //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>

    参数:

    <!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">
    <title>无标题文档</title>
    <script type="text/javascript">
    function f(num,callback){
    if(num<0) {
    alert(
    "调用低层函数处理!");
    alert(
    "分数不能为负,输入错误!");
    }
    else if(num==0){
    alert(
    "调用低层函数处理!");
    alert(
    "该学生可能未参加考试!");
    }
    else{
    alert(
    "调用高层函数处理!");
    callback(
    1);
    }

    }

    function test(){
    var p=document.getElementById("pp");
    pp.innerText
    ="";
    var num=document.getElementById("score").value;
    f(num,
    function(back){ //匿名高层处理函数
    alert(back);
    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>

     

      

     

    <script type="text/javascript">
        window.onload = function(){
            alert("fuckof");
       }
    </script>
    

      

      

  • 相关阅读:
    微信公众号开发(二)用户关注
    搭建git服务器
    微信公众号开发(三)生成带参数的二维码
    windows 安装多个mysql
    微信公众号开发(一)前期 配置
    支付宝接口之条码支付
    mysql8.0 安装 修改密码 允许远程连接
    区块链开发金融交易平台
    区块链开发 在金融融资交易平台中的优势
    2019年区块链金融交易所钱包开发需要多少钱
  • 原文地址:https://www.cnblogs.com/wangkangluo1/p/2130022.html
Copyright © 2020-2023  润新知