摘要:高階函數在函數式語言中,函數是這個語言中的一等公民。高階函數可以接收函數作為參數,或者返回一個函數結果,或者兩者同時具備。下面我們看另一個高階函數我們通過向函數傳遞一個常量來創建一個函數,將給任意值加上。只要有引用指向它該函數就會一直存在。
上篇文章介紹了純函數,相信你已經理解了純函數的概念。下面我們接著看一段代碼
let minimum = 21; let checkAge = age => age >= minimum // 純的 let checkAge = age => { let minimum = 21; return age >= minimum; };
純函數把關鍵字18硬編碼在函數內部,擴展性差,那我們如何解決呢?
let checkAge =(minimum, age) => age >= minimum
機智如你肯定會想到通過一個參數將通過傳參數將minimum傳遞進去,很好,這樣很機智的解決了問題,可是如果情況是這樣的呢?
let minimum = x => x * 2; let checkAge = age => age >= minimum(2)
我們怎么把這段代碼改成純函數,且不是硬編碼的呢?
我們可以將一個函數作為參數傳遞。
在函數式語言中,函數是這個語言中的一等公民。通俗來講,函數僅僅是另一種值而已,他與村口的"劉能" "趙四"這類js其他數據類型一樣,把它們存在數組里,當作參數傳遞,賦值給變量...等等。
let checkAge =(age, minimum) => age >= minimum(2)
我們的新函數就稱為高階函數(Higher-order Function)。
高階函數可以接收函數作為參數,或者返回一個函數結果,或者兩者同時具備。
下面我們看另一個高階函數
let makeAdder = x => (y => x + y); let add10 = makeAdder(10); add10(10); //20
我們通過向makeAdder函數傳遞一個常量10來創建一個函數add10,add10將給任意值加上10。
這個makeAdder里面的匿名函數就是我們經常被面試官用來壓壓驚的大名鼎鼎的閉包,這個行為非常的重要,因為如果沒有它,能夠返回函數的函數不是很有用。
當一個函數被創建,其整個生命周期中都是可以訪問在在其創建時作用域內的所有變量。只要有引用指向它該函數就會一直存在。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/82889.html
摘要:由于技術棧的學習,筆者需要在原來函數式編程知識的基礎上,學習的使用。筆者在社區發現了一個非常高質量的響應式編程系列教程共篇,從基礎概念到實際應用講解的非常詳細,有大量直觀的大理石圖來輔助理解流的處理,對培養響應式編程的思維方式有很大幫助。 showImg(https://segmentfault.com/img/bVus8n); [TOC] 一. 響應式編程 響應式編程,也稱為流式編程...
摘要:函數式編程,一看這個詞,簡直就是學院派的典范。所以這期周刊,我們就重點引入的函數式編程,淺入淺出,一窺函數式編程的思想,可能讓你對編程語言的理解更加融會貫通一些。但從根本上來說,函數式編程就是關于如使用通用的可復用函數進行組合編程。 showImg(https://segmentfault.com/img/bVGQuc); 函數式編程(Functional Programming),一...
摘要:函數式編程二拖延癥了好久,第二篇終于寫出來了。如果你對熟悉的話應該還記得,是可以調用來集中處理錯誤的對于函數式編程我們也可以做同樣的操作,如果運行正確,那么就返回正確的結果如果錯誤,就返回一個用于描述錯誤的結果。 JavaScript函數式編程(二) 拖延癥了好久,第二篇終于寫出來了。 上一篇在這里:JavaScript函數式編程(一) 上一篇文章里我們提到了純函數的概念,所謂的純函數...
摘要:注意是單一參數柯里化是由以邏輯學家命名的,當然編程語言也是源自他的名字,雖然柯里化是由和發明的。辨別類型和它們的含義是一項重要的技能,這項技能可以讓你在函數式編程的路上走得更遠。 slide 地址 三、可以,這很函數式~ showImg(https://segmentfault.com/img/remote/1460000015978685?w=187&h=160); 3.1.函數是一...
閱讀 2858·2021-07-30 15:30
閱讀 553·2019-08-30 15:55
閱讀 1621·2019-08-26 17:04
閱讀 633·2019-08-26 11:36
閱讀 2064·2019-08-26 10:58
閱讀 3549·2019-08-23 14:34
閱讀 1558·2019-08-22 18:48
閱讀 2522·2019-08-21 17:51