//定义的比较函数
function createComparisonFunction (propertyname){
return function (obj1,obj2){
var val1=obj1[propertyname];
var val1=obj1[propertyname];
if(val1<val2){
return -1;
}else if(val1>val2){
return 1;
}else{
return 0;
}
}
}
//下面是用法
var data=[{name:"a",age:2},{name:"b",age:1}];
data.sort(createComparisonFunction('name));// 这里调用了比较函数
我不太理解的是: 比较函数的第一个 return 中的两个 obj 这两个参数怎么传入的?为什么就可以直接使用 data ?
1
bojackhorseman 2019-09-06 19:05:17 +08:00 via iPhone
|
2
Danswerme 2019-09-06 19:15:55 +08:00
sort 接收一个函数作为参数,这个函数接收两个参数进行比较后返回结果。而你的 createComparisonFunction 函数执行之后返回的就是这么一个函数,你可以在 chrome 里手动执行一下你这个 createComparisonFunction 函数就知道了。
|