Js函数深入理解-函数可作为参数及返回值
作为参数:
function a(x){return x;} //声明一个函数function b(fname,param){ //声明一个函数,fname为函数名称,param参数
return fname(param);
}
var rs = b(a,10); //相当于 a(10)
console.log(rs)
作为返回值:
作为返回值返回这种方式是比较常用的
比如说现在要对一下数据进行排序
var data = [{name: "张三", age: 18, score:80}, {name: "Nicholas", age: 29, score:99}, {name: "Collose", age: 40, score:90}];
在开发中也是经常遇到的,如何服务器端无法排序,可以考虑一下利用js排序
//propertyName排序的字段,sort-asc升,sort-decs降
function createComparisonFunction(propertyName,sort) {
return function(object1, object2){
var value1 = object1[propertyName];
var value2 = object2[propertyName];
if(sort == 'asc') return value1-value2;
if(sort == 'desc') return value2-value1;
};
}
var data = [{name: "张三", age: 18, score:80}, {name: "Nicholas", age: 29, score:99}, {name: "Collose", age: 40, score:90}];
data.sort(createComparisonFunction("score",'desc'));
console.log(data)