1-6、函數作爲返回值

函數做爲返回值,其實就是用函數生成一個函數。

上代碼之前,我們再來回顧一下函數式編程的核心思想。

函數式編程是把運算過程抽象成函數,在任何地方都可以調用這些函數。
它的意義在於函數可以靈活使用,抽象幫我們屏蔽中間的運算細節,我們只關注最終實現的目標就可以了。

示例-1:

function once(fn) {
	let done = false;
	return function () {
		if (!done) {
            done = true;
            return fn.apply(this, arguments);
		}
	};
}

let pay = once(function (money) {
    console.log(`支付:${money}元`)
})

pay(5)
pay(5)
pay(5)
pay(5)

我們通過一個once函數,來實現了函數作爲返回值應用,雖然pay方法調用了4次,但它只執行一次。

從代碼上來看,其實我們在實際開發過程中once是被封裝好放到一個公共的類或者方法裏,我們實際用到的只是調用once方法而已,確實不用關心它內部是怎麼寫的。

每天寫寫博客,果然就是超越自己。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章