函式程式設計理念

2021-09-20 03:55:25 字數 1571 閱讀 7418

柯里化是一種將使用多個引數的乙個函式,轉換成一系列使用乙個引數的函式的技術

前端使用柯里化的主要是簡化**結構,提高系統的維護性,乙個方法只有乙個引數,強制來功能的單一性, 很自然的做到來功能內聚,降低耦合。柯里化的優點是降低**的重複,提高**的適應性。

function

fixedparamscurry

(fn)

}function

add(a, b, c, d)

function

curry

(fn, length)

else}}

var newadd =

curry

(add)

var result1 =

newadd(1

)(2)

(3)(

4)var result2 =

newadd(2

,2)(

2,3)

var newadd1 =

newadd(1

);var result3 =

newadd1(2

,3,4

)

乙個是陣列的扁平化,乙個是物件的扁平化。其實都是乙個降維的過程,既將多層的陣列或者物件轉化為一層。

// 陣列扁平化

function

flatten

(arr)

else

}return result

}// 使用reduce

const

flatten1

=(arr)

=> arr.

reduce

((pre, next)

=>,[

])

判斷了一次之後,不需要再去判斷第二次。例如下面的新增監聽事件的函式。

function

addevent

(dom, type, handler)

}else

}}

將其他的函式的功能組合,返回乙個新的函式,形成乙個新的功能。自右向左執行,將後面的函式執行的結果返回給前面的函式。

function

compose()

, x)}}

function

a(x)

function

b(x)

function

c(x)

var f =

compose

(a, b, c)f(

'a')

對於相同的輸入,永遠會得到相同的輸出,而且沒有任何***,不影響外部變數,也不依賴外部環境的狀態,不依賴不修改外界作用域的變數或狀態。

多使用純函式,可以降低出現bug的概率。

通過閉包,私有化乙個 cache 變數,將函式執行的結果快取到這個 cache 當中。

function

mermory

(fn)

return

function()

else

}}

OOP程式設計理念

物件導向程式設計師程式結構的一種實現方法,包括以下幾個要素 物件 object 包含一定的資料結構和狀態的實體。操作 operation 作用於物件的行為,如訪問和處理物件的狀態 封裝 excapsulation 定義物件和操作,只提供抽象的介面,並隱藏它們的具體實現 繼承 inheritance ...

虛函式表實現理念

每個包含了虛函式的類都包含乙個虛表。我們知道,當乙個類 a 繼承另乙個類 b 時,類a會繼承類b的函式的呼叫權。所以如果乙個基類包含了虛函式,那麼其繼承類也可呼叫這些虛函式,換句話說,乙個類繼承了包含虛函式的基類,那麼這個類也擁有自己的虛表。個人理解 用父類指標指向子類物件時,如果基類中有虛函式,那...

C 程式設計的幾大理念

1.編碼要規範。為什麼看別人的 總是那麼痛苦,這個問題是程式設計師永遠的痛。造成這個痛的原因就是每個人都按照自己的編碼習慣去編碼。2 要有重用思想。寫 時要有重用思想,要想到自己的 可能在以後還會用到,到時候乙個ctrl c,就過去了。3 要有 移植思想。4 要有介面和邏輯分離思想。5 要有模組化思...