• 高阶函数


    1.函数作为参数调用

    function f1(fn){
    	console.log("f1函数");
    	fn();
    }
    //传入匿名函数
    f1(function(){
    	console.log("aa");
    });
    //命名函数
    function f2(){
    	console.log("f2函数");
    }
    f1(f2);
    
    //定时器的使用
    function f3(fn){
    	setInterval(function(){
    		console.log("定时器开始");
    		fn();
    		console.log("定时器结束");
    	},1000);
    }
    /*f3(function(){
    	console.log("好困啊,好累啊");
    })*/

    2.函数作为返回值使用

    ///函数作为返回值使用
    function getFunc(type){
    	return function(obj){
    		return  Object.prototype.toString.call(obj)==type;
    	}
    }
    //
    var ff=getFunc("[object Array]");
    var result=ff([10,20,30]);
    console.log(result);
     var ff1 = getFunc("[object Date]");
     var dt = new Date();
     var result1 = ff1(dt);
     console.log(result1);
    

      

    3.函数作为返回值小案例

    //排序,每个文件都有名字,大小,时间,都可以按照某个属性的值进行排序
    
        //三部电影,电影有名字,大小,上映时间
        function File(name, size, time) {
          this.name = name;//电影名字
          this.size = size;//电影大小
          this.time = time;//电影的上映时间
        }
        var f1 = new File("jack.avi", "400M", "1997-12-12");
        var f2 = new File("tom.avi", "200M", "2017-12-12");
        var f3 = new File("xiaosu.avi", "800M", "2010-12-12");
        var arr = [f1, f2, f3];
    
        function fn(attr) {
          //函数作为返回值
          return function getSort(obj1, obj2) {
            if (obj1[attr] > obj2[attr]) {
              return 1;
            } else if (obj1[attr] == obj2[attr]) {
              return 0;
            } else {
              return -1;
            }
          }
        }
    
        var ff = fn("name");
    
        //函数作为参数
        arr.sort(ff);
        for (var i = 0; i < arr.length; i++) {
          console.log(arr[i].name + "====>" + arr[i].size + "===>" + arr[i].time);
        }
    

      

  • 相关阅读:
    每日总结3.8
    Go中定时器实现原理及源码解析
    Go语言实现布谷鸟过滤器
    详解Go语言调度循环源码实现
    Go语言中时间轮的实现
    详解Go语言I/O多路复用netpoller模型
    详解Go中内存分配源码实现
    Go中由WaitGroup引发对内存对齐思考
    【分享】java精品实战教程
    nginx实战教程
  • 原文地址:https://www.cnblogs.com/liushisaonian/p/9460875.html
Copyright © 2020-2023  润新知