JavaScript之高阶函数(函数作为参数使用,函数作为返回值使用)

函数作为参数使用

函数作为参数的时候,如果是命名函数,那么只传入命名函数的名字,没有括号

//函数作为参数的时候,如果是命名函数,那么只传入命名函数的名字,没有括号
function f1(f2) {
     setInterval(function () {
       console.log("定时器开始");
       f2();
       console.log("定时器结束");
     },1000);
   }

   f1(function () {
     console.log("好困啊,好累啊,就是想睡觉");
   });

函数作为返回值使用

一个小案例:

按照电影的名称,大小,时间对电影进行从大到小的排序

<script>
    //创建电影对象
    function File(name,size,time) {
        this.name=name;
        this.size=size;
        this.time=time;
    }
    //实例化对象
    var file01=new File("失恋100天","250M","2018.8.5");
    var file02=new File("前任3","200M","2018.5.1");
    var file03=new File("分手不说再见","520M","2018.4.28");
    var arr=[file01,file02,file03];
    function fn(attr) {
        return function (obj01,obj02) {
            if (obj01[attr]>obj02[attr]){
                return 1;
            }
            if (obj02[attr]==obj01[attr]){
                return 0;
            }else {
                return -1;
            }
        }
    }
    var ff=fn("size");//按照电影文件的大小从小到大进行排序
    arr.sort(ff);//函数作为参数使用
    for (var i = 0; i < arr.length; i++) {
        console.log(arr[i].name + "====>" + arr[i].size + "===>" + arr[i].time);
    }
</script>

猜你喜欢

转载自blog.csdn.net/qq_41320857/article/details/81355737