JS 返回值为函数,函数参数的问题

2019-09-06 18:56:10 +08:00
 aria955
//定义的比较函数
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 ?

973 次点击
所在节点    问与答
2 条回复
bojackhorseman
2019-09-06 19:05:17 +08:00
Danswerme
2019-09-06 19:15:55 +08:00
sort 接收一个函数作为参数,这个函数接收两个参数进行比较后返回结果。而你的 createComparisonFunction 函数执行之后返回的就是这么一个函数,你可以在 chrome 里手动执行一下你这个 createComparisonFunction 函数就知道了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/598690

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX