摘要:
柯里化 当一个函数有多个参数的时候,先传递一部分参数调用它(这部分参数以后将不会再发生变化),然后返回一个新的函数接收剩余的参数,这个函数返回结果 示例 // _lodash 中的curry函数 const _ = require('lodash') function getSum(a,b,c){ 阅读全文
摘要:
什么是纯函数? 纯函数:相同的输入永远会得到相同的输出,而且没有任何可观察的副作用 // 纯函数slice和不纯函数splice let array=[1,3,6,8] //slice不改原数组,第次输出结果是一样的,是纯函数 console.log(array.slice(0,3)) consol 阅读全文
摘要:
闭包 闭包:延长函数内部属性的作用域范围 本质:函数在执行的时候会放到一个执行栈上,当函数执行完毕后,会从执行栈上移除,但是堆上的作用域成员因为被外部引用而不能释放,因此内部函数依然可以访问函数的成员 // once函数中使用到闭包 function once(fn){ let done = fal 阅读全文
摘要:
高阶函数 高阶函数(Hiner-order function),可以把函数作为参数传递给另一个函数,也可以把函数作为另一个函数的返回结果 // 函数作为参数 function forEach(array,fn){ for(let i = 0; i < array.length; i++){ fn(a 阅读全文
摘要:
函数式编程(Functional Programming,FP) 什么是函数式编程? 通过纯函数来实现一些细粒度的函数,然后把这些细粒度的函数组合成功能更强大的函数,这一过程就是函数式编程,经典函数式编程库:lodash 函数式编程是编程范式之一,其它还有:面向过程编程、面积对象编程 函数式编程的思 阅读全文