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

2017-09-17  本文已影响23人  艾特TT

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 与方法参数一样

二、开始函数式编程

函数式初始

function existy(x) {
  return x != null
}
existy(null) // false
existy(undefined) // false
existy(0) // true
existy(false) // true

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

function truthy(x) {
  return x !== false && existy(x)
}
truthy(0) // true
truthy(false) // false
truthy(undefined) // false
truthy(null) // false

加速

三、总结

相关文档

上一篇 下一篇

猜你喜欢

热点阅读