美文网首页
高阶函数

高阶函数

作者: ByePast | 来源:发表于2020-04-10 11:57 被阅读0次

什么是高阶函数

高阶函数的维基百科定义:至少满足以下条件之一:

  • 接受一个或多个函数作为输入;
  • 输出一个函数;

例子

function add (x, y, fn) {
  return fn(x) + fn(y);
}

var x = -5,
  y = 6,
  fn = Math.abs

add(x, y, fn)  // 11

高阶函数的好处

// 正常函数
function isType (obj, type) {
  return Object.prototype.toString.call(obj).includes(type)
}

let type = 'xxx'
let is = true
console.log(isType(type, 'String')) // true
console.log(isType(type, 'Boolean')) // false
console.log(isType(is, 'Bolean')) // false,这里因为写错了才为 false
// 假如不小心把 Boolean 写错了 Bolean,没注意,这也不会报错还会安装平常返回判断,但是这可能是错的,很多时候这种错误是不容易发现

其实可以换种写法,但是注意⚠️写类型列表时没有写错就可以避免上面的情况
下面是高阶函数写法

// 高阶函数
function isType (type) {
  return function (obj) {
    return Object.prototype.toString.call(obj).includes(type)
  }
}

const types = ['String', 'Object', 'Array', 'Null', 'Undefined', 'Boolean']
let fns = {}
types.forEach(type => fns[`is${type}`] = isType(type))

let type = 'xxx'
let is = true
console.log(fns.isString(type)) // true
console.log(fns.isBoolean(type)) // false
console.log(fns.isBolean(type)) // fns.isBolean is not a function
// 这里一样是把 Boolean 写成了 Bolean,但是这里就报错让我们可以发现这里写错了,而不是像上面那样,还以为是正常的

相关文章

  • python学习(三)函数式编程

    高阶函数 函数也是变量,函数参数为函数的函数,称作高阶函数 自定义高阶函数 内建高阶函数 map/reducema...

  • 11.Lambda和高阶函数(Lambda and Higher

    高阶函数 kotlin_Lambda,高阶函数 *swift_高阶函数

  • Python | 高阶函数基本应用及Decorator装饰器

    一、高阶函数 理解什么是高阶函数?以及高阶函数的基本应用方法 ▲ 高阶函数 在了解什么是高阶函数之前,我们来看几个...

  • 四、函数进阶

    一. 高阶函数 参数类型包含函数类型或返回值类型为函数类型的函数为高阶函数。 常见的高阶函数 高阶函数的调用 二....

  • Kotlin 高阶函数

    什么是高阶函数 将函数作为参数或者返回值的,称高阶函数。 定义高阶函数 action是一个高阶函数,(Int) -...

  • 高阶组件

    高阶组件 先来引入这个概念 高阶函数是什么? 高阶函数就是一个函数返回一个函数eg: 高阶组件 类同 高阶组件就是...

  • [JS函数] (Array)の高阶函数

    JS函数 高阶函数 高阶函数英文叫Higher-order function。那么什么是高阶函数? JavaScr...

  • HOC - High Order Component 高阶组件

    高阶函数 简而言之,可以接收函数作为参数的函数就是一个高阶函数。 上面的hoc函数就是一个高阶函数。 高阶组件 高...

  • Day10. 高阶组件

    1. 认识高阶函数 什么是高阶组件呢?认识高阶函数.png 高阶函数: 接收一个或多个函数作为输入, 输出一个函数...

  • Python高阶函数

    本文要点 1.什么是高阶函数 2.python中有哪些常用的高阶函数 什么是高阶函数? 在了解什么是高阶函数之前,...

网友评论

      本文标题:高阶函数

      本文链接:https://www.haomeiwen.com/subject/hryruhtx.html