《JavaScript函數(shù)式編程》讀書筆記之第一章 JavaScript 函數(shù)式編程簡介

JavaScript 函數(shù)式編程簡介

一、案例

  • 案例一
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 將參數(shù)放到數(shù)組中調用,call 與方法參數(shù)一樣

二、開始函數(shù)式編程

函數(shù)式初始

  • existy 函數(shù),主要用于 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 函數(shù),用于 值判斷,主要為 false、 nullundefined三個值, 如果希望數(shù)字 0 也為 值,請不要用這個方法
function truthy(x) {
  return x !== false && existy(x)
}
truthy(0) // true
truthy(false) // false
truthy(undefined) // false
truthy(null) // false

加速

三、總結

  • 確定抽象,并為其構建函數(shù)
  • 利用已有的函數(shù)來構建更為復雜的抽象
  • 通過將現(xiàn)有的函數(shù)傳給其他的函數(shù)來構建更加復雜的抽象

相關文檔

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容