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()

原文地址:https://www.cnblogs.com/Yimi/p/6344725.html