zoukankan      html  css  js  c++  java
  • 定义与参数_简单的回调函数例子

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>模块模式</title>
        <script src="../unitl/test.js"></script>
        <style>
            #results li.pass {color:green;}
            #results li.fail {color:red;}
        </style>
    </head>
    <body>
    
        <ul id="results"></ul>
    
        
    </body>
    
    
    <script>
    
    
        var text = "Demo arigato!";
    
        report("Before defining funcations");
    
    
        //函数定义,参数为一个回调函数,其函数内立即调用该回调函数
        function unless(ninjaCallback) {
            report("In unless function");
            return ninjaCallback();
            
        }
    
    
        function getText() {
    
            report("In getText function");
            return text;
    
        }
    
        report("Before making all the calls");
    
        assert(unless(getText)===text,"The unless function works!" + text);
    
        report("After the calls have been made");
    
    
    </script>
    </html>
    
    

    接下来我们来看看看这个简单函数是如何执行的,首先执行这一句。

    紧接着执行回调函数

    如图,useless(getText)调用后的执行流。getText作为参数传入useless函数并调用。useless函数体内对传入函数进行调用,本例中促发了getText函数的执行。(即我们对getText函数进行回调)。

    完成这个过程很容易,原因就在于javascript的函数式本质让我们能把函数作为第一类对象。更进一步说,我们的代码可以写成如下形式:

    var text = 'demo arigato';
    
    function useless(ninjaCallback) {
         return ninjaCallback();
    }
    //直接以参数形式定义回调函数。
    assert(useless(function(){return text})===text,"The useless function works!" + text);
    
    
  • 相关阅读:
    javascript 获取鼠标在盒子中的坐标
    jquery中clientY, pageY, screenY的区别,最后三张图一目了然
    javascript 小清新颜色翻页效果
    javascript 缓动返回顶部案例
    原生js轮播图实现
    javascript Math对象
    javascript 获取节点元素的封装
    javascript 转换大小写字母
    2017 ACM-ICPC 亚洲区(青岛赛区)网络赛 1010
    2017 ACM-ICPC 亚洲区(青岛赛区)网络赛 1009
  • 原文地址:https://www.cnblogs.com/jamal/p/14103310.html
Copyright © 2011-2022 走看看