简而言之,高阶函数是一个可以接收函数作为参数,甚至返回一个函数的函数。它就像常规函数一样,只是多了接收和返回其他函数的附加能力,即参数和输出。

    1. function arrBarlow(arr,barlow, fn){
    2. let newArr = [];
    3. arr.forEach(item=>{
    4. newArr.push(item*barlow)
    5. fn(item);
    6. });
    7. return newArr;
    8. }
    9. const newArr = arrBarlow([2,5,3,6,7],2,(item)=>{
    10. console.log(item);
    11. })
    12. console.log(newArr);
    13. // ----------------------------
    14. function arrBarlow({arr, barlow=2, fn}){
    15. let newArr = [];
    16. arr.forEach(item=>{
    17. newArr.push(item*barlow)
    18. fn(item);
    19. });
    20. return newArr;
    21. }
    22. const newArr = arrBarlow({
    23. arr: [2,5,3,6,7],
    24. fn: (item)=>{
    25. console.log(item);
    26. }
    27. })
    28. console.log(newArr);
    29. // ----------------------------
    30. function vipFn(fn){
    31. const vip = document.cookie.isVip;
    32. if(!vip){
    33. console.warn("无权限,请开通vip!")
    34. return;
    35. }
    36. fn();
    37. }
    38. vipFn(()=>{
    39. alert("显示vip内容!")
    40. })