函数的概念解析
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() { } }