JavaScript高阶函数(Higher-order function)

@wanqiuz 2018-04-25 15:34:36发表于 wanqiuz/blog-articles JavaScript高阶函数

1 高阶函数定义

高阶函数是指至少满足下列条件之一的函数:
(1) 函数可以作为参数被传递;
(2) 函数可以作为返回值输出。

1.1 作为参数传递

var appDiv = function (callback) {
if(typeof callback === 'function'){
callback();
}
}
appDiv(function () {
console.log('我是回调函数')
})

1.2 作为返回值

单例模式
var getSingle = function (fn) {
var ret;
return function () {
return ret || (ret = fn.apply( this,arguments ) )
}
}

2 高阶函数实现AOP

AOP(面向切面编程)的主要作用是把一些跟核心业务逻辑无关的功能抽离出来,在通过“动态植入”的方式掺入业务逻辑快中

2.1 函数柯里化(curring)

curring又称部分求值,一个currying函数首先会接受一些参数,该函数并不会立即求值,而是继续返回另外一个函数,刚才传入的参数在函数形成的闭包

参考并感谢: