《JavaScript函数式编程》读书笔记之第一章 JavaScript 函数式编程简介

JavaScript 函数式编程简介

一、案例

  • 案例一
function splat (fun) {
  return function(array) {
    return fun.apply(null, array)
  }
}
var addEleFun = splat(function (x, y) {
  return x + y
})
addEleFun([1, 2]) // 3

个人理解

通过这样写的一大好处是行为与结果分步进行,更好的解耦、组合

  • 案例二
function unsplat(fun) {
  return function() {
    return fun.call(null. _.toArray(arguments))
  }
}
var joinEle = unsplat(function(array) {
  return array.join(' ')
})
joinEle('1', '$', '&')
// 1 $ &

注:apply 将参数放到数组中调用,call 与方法参数一样

二、开始函数式编程

函数式初始

  • existy 函数,主要用于 nullundefined 值判断,注意使用的是 != 不是 !==
function existy(x) {
  return x != null
}
existy(null) // false
existy(undefined) // false
existy(0) // true
existy(false) // true

关于 null >= 0 的讨论请参考 Franky 大大的 从 null >= 0 说起

  • truthy 函数,用于 值判断,主要为 falsenullundefined三个值, 如果希望数字 0 也为 值,请不要用这个方法
function truthy(x) {
  return x !== false && existy(x)
}
truthy(0) // true
truthy(false) // false
truthy(undefined) // false
truthy(null) // false

加速

三、总结

  • 确定抽象,并为其构建函数
  • 利用已有的函数来构建更为复杂的抽象
  • 通过将现有的函数传给其他的函数来构建更加复杂的抽象

相关文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容