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方法不仅可以比较数字,还可以比较字符串。