zoukankan      html  css  js  c++  java
  • JavaScript匿名函数和回调函数

    匿名函数的自调函数格式:

    (function(){
    //代码
    })();
    <script type="text/javascript">
    
    (function(){
    alert("this is a test");
    })();
    </script>

    带参

    (function(a,b){
    alert(a+b);
    })(3,5);

    函数表达式可以存储在变量中,变量也可以作为一个函数使用
    可以将匿名函数作为参数传递给其它函数,接收方函数就可以通过所传递进来的函数完成某些功能
    可以通过匿名函数来执行某些一次性的任务

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8"/>
    <title></title>
    </head>
    <body>
    <script type="text/javascript">
    //测试编码URI的函数
        var test1=function(x,y){return x*y;};
        var test2=function(x,y){return x+y;};
        alert(test1(3,5));
        alert(test2(2,6));
    </script>
    </body>
    </html>
    回调函数 节省全局变量,有利于提高性能
    <script type="text/javascript">
    //测试编码URI的函数
        //var test1=function(x,y){return x*y;};
        //var test2=function(x,y){return x+y;};
        //alert(test1(3,5));
        //alert(test2(2,6));
        //回调函数的例子
        function calc(x,y){
        return x()+y();
        }
        function test3(){
        return 3;
        }
        function test4(){
        return 5;
        }
        //alert(calc(test1,test2));
        alert(calc(function(){return 10;},function(){return 5;}));
    </script>

    函数返回15

    乘2  加1

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8"/>
    <title></title>
    </head>
    <body>
    <script type="text/javascript">
    //乘2
    function cheng2(a,b,c){
        var i,arr=[];
        for(i=0;i<3;i++){
        arr[i]=arguments[i]*2;
        }
        return arr;
        }
        function jia1(a){
        return a+1;
        }
        var arr1=[];
        arr1=cheng2(20,30,50);
        alert(arr1);
        for(var i=0;i<3;i++){
        arr1[i]=jia1(arr1[i]);
        }
        alert(arr1);
    </script>
    </body>
    </html>
        function addOne(a){
        return a+1;
        }
        function test(a,b,c,callback){
        var i,arr=[];
        for(i=0;i<3;i++){
        arr[i]=callback(arguments[i]*2);
        }
        return arr;
        }
        alert(test(5,6,7,addOne));
    alert(test(5,6,7,function(a){return a+2}));

     系统中自定义的回调函数call()和reply()

  • 相关阅读:
    Codeforces Round #360 B
    Codeforces Round #360 C
    Codeforces Round #360 D
    新姿势 树剖求LCA
    Codeforces 165D Beard Graph 边权树剖+树状数组
    hdu3966 树链剖分+线段树 裸题
    Codeforces Round #425 D
    Codeforces Round #425 B
    Codeforces Round #425 A
    bzoj 1036 树链剖分+线段树 裸题
  • 原文地址:https://www.cnblogs.com/Yimi/p/6344725.html
Copyright © 2011-2022 走看看