案例:排序,每个文件都有名字,大小,时间,都可以按照某个属性的值进行排序

  1. //三部电影,电影有名字,大小,上映时间
  2. function File(name, size, time) {
  3. this.name = name;//电影名字
  4. this.size = size;//电影大小
  5. this.time = time;//电影的上映时间
  6. }
  7. var f1 = new File("jack.avi", "400M", "1997-12-12");
  8. var f2 = new File("tom.avi", "200M", "2017-12-12");
  9. var f3 = new File("xiaosu.avi", "800M", "2010-12-12");
  10. var arr = [f1, f2, f3];
  11. function fn(attr) {
  12. //函数作为返回值
  13. return function getSort(obj1, obj2) {
  14. if (obj1[attr] > obj2[attr]) {
  15. return 1;
  16. } else if (obj1[attr] == obj2[attr]) {
  17. return 0;
  18. } else {
  19. return -1;
  20. }
  21. }
  22. }
  23. var ff = fn("name");
  24. //函数作为参数
  25. arr.sort(ff);
  26. for (var i = 0; i < arr.length; i++) {
  27. console.log(arr[i].name + "====>" + arr[i].size + "===>" + arr[i].time);
  28. }

image.png