闭包题目讲解3

补全代码实现数组按年龄、姓名、任意字段排

var user=[
  {name:"john",age:20,company:"baidu"},
  {name:"pete",age:"18",company:"alibaba"},
  {name:"ann",age:"19",company:"tengxun"}
]
users.sort(byname)
users.sort(byage)
users.sort(byfield('surname'))
//sort的用法括号里面是函数。
users.sort(function(a,b){
  return a.name>b.name
})
users.sort(function(a,b){
  return a.age>b.age
})
function byname(a,b){
  return a.name>b.name
}
所以byfield('surname')是函数,需要两个参数做比较。
function byfield(field){
 return function(user1,user2){
    return user1[field]> user2[field]
  }
}//想怎么排序,定field的值就好了。这里field的引入把surname给暂存下来了。

写一个sum函数

console.log(sum(1)(2))  //3
console.log(sum(5)(-1))   //4
//sum()得到的就是一个函数,并引入变量1,得到的这个函数再执行,出现变量2,并出现方法。
function sum(a){
  return function(b){
    return a+b
  }
}   //a被暂存了。

你可能感兴趣的:(闭包题目讲解3)