高阶函数

高阶函数 指代 参数可以是一个函数,函数中返回函数
getcallBack(back) {
return Back();
}
 
demo
// 判断类型 Object.prototype.toString.call();
function isType(type){ // type == 'boolean'
return function (obj){
return Object.prototype.toString.call(obj).includes(type);
}
}
// 包装成一个高阶函数 批量生成函数
let types = ['String','Object','Array','Null','Undefined','Boolean'];
let fns = {};
types.forEach(type=>{ // 批量生成方法
fns['is'+type] = isType(type)
})
let a = '123';
console.log(fns.isString(a)); // 函数柯里化
 
我们先声明一个带有 类型的数组 ,遍历数组 ,声明一个对象 ,对象的key  是 数组中 的每一项   fns['is'+type]   数组的value 是函数的返回值  
sType(type) 会返回一个值 
Object.prototype.toString.call(obj)  判断函数的类型 
includes 返回布尔值 
posted @ 2019-08-07 20:41  1点  阅读(114)  评论(0编辑  收藏  举报