函数的概念解析

1.纯函数

1. 不修改输入参数;

如果修改了输入的参数,则就不是纯函数。

示例:

// 纯函数
function sum(a,b) {
   return a+b;
}
// 非纯函数
function fn(obj, amount) {
   obj.count += amount; //修改了入参
}

2. 输入相同,输出永远相同;

2.高阶函数

以下只要满足一个条件就是高阶函数。

1. 以函数作为参数

以回调函数作为参数的函数都是高阶函数。

示例:

Array.prototype.map(callback);
Array.prototype.reduce(callback);

2. 结果输出函数

functon a() {
  return function b() {
  }
}

 

posted @ 2019-03-11 15:31  Lyra李  阅读(422)  评论(0编辑  收藏  举报