一、定义:
高阶函数是指至少满足一下条件之一:
函数可以作为参数被传递 或者 函数可以作为返回值输出。
(1)函数作为参数被传递
如:回调函数、Array.prototype.sort函数接收一个函数作为参数
(2)函数作为返回值输出
如:判断数据类型
var isString = function( obj ){
return Object.prototype.toString.call( obj ) === '[object String]'; // String、Array、Object等数据类型判断
};
如:getSingle单例模式
var getSingle = funcition(fn){
var ret;
return function (){
return ret || ( ret = fn.apply(this, arguments));
}
}