JS高级-函数作为参数、返回值

2018-11-07  本文已影响0人  哎呦呦胖子斌

函数作为参数的时候,如果是命名函数,那么只传入命名函数的名字,没有括号,有括号代表执行函数。
函数作为返回值的时候,用一个变量接收函数,变量后面带上括号和参数就表示执行了函数。
一个栗子:按照所选的方式对电影排序

   function File (name,size,time){
        this.name = name;
        this.size = size;
        this.time = time;
    }
    var f1 = new File('电影1','400m','2010-11-22');
    var f2 = new File('电影2','200m','1990-11-22');
    var f3 = new File('电影3','500m','2019-11-22');
    var arr = [f1,f2,f3];
    var ff = function (attr){
        return function getSort (obj1,obj2){
            if(obj1[attr]>obj2[attr]){
                return 1;
            }else if (obj1[attr]==obj2[attr]){
                return 0;
            }else {
                return -1;
            }
        }
    }
    arr.sort(ff('time'));
    console.log(arr);

将电影按类别排序,这样使用sort方法不仅可以比较数字,还可以比较字符串。

上一篇 下一篇

猜你喜欢

热点阅读