javascript之高阶函数

作者: 子龙0322 | 来源:发表于2018-11-19 11:16 被阅读20次

高阶函数的英文名叫 Higher-Order Function,熟悉 React 的朋友应该知道高阶组件 Higher-Order Component。没错,React 的高阶组件本质上就是高阶函数。

那么,什么是高阶函数呢?
高阶函数源自于函数式编程(不熟悉的朋友请看《javascript中的函数式编程》),是函数式编程的基本技术。

那么,JS作为一门“一切皆为对象”的语言,是如何拥有函数式编程的能力呢?
是因为在JS中函数是一等公民,即函数可以被赋值给变量,被变量引用,这便使得函数可以作为参数,在其他函数间相互传递:

/** 
 * 数值转换
 * @param {Number} val 要被处理的数值
 * @param {Function} fn 处理输入的val
 * @return {Number || String}
 */
const toConvert = function(val, fn) {
    return fn(val);
};

const addUnitW = function(val) {
    return val + 'W';
};

toConvert(123.1, Math.ceil); // 124
toConvert(123.1, addUnitW); // "123.1W"



另外,JS的回调函数同样是以实参形式传入其他函数中,这也是高阶函数(在函数式编程中回调函数被称为 lambda表达式):

[1, 2, 3, 4, 5].map(d => d ** 2); // [1, 4, 9, 16, 25]

// 以上,等同于:
const square = d => d ** 2;
[1, 2, 3, 4, 5].map(square); // [1, 4, 9, 16, 25]

相关文章

  • JavaScript教程day13-高阶函数

    高阶函数 高阶函数英文叫Higher-order function。javascript的函数其实都指向某个变量。...

  • js 关于高阶函数

    高阶函数英文叫Higher-order function。那么什么是高阶函数? JavaScript的函数其实都指...

  • JS基础回顾:高阶函数

    高阶函数英文叫Higher-order function。那么什么是高阶函数? JavaScript的函数其实都指...

  • react hoc

    一、概念 高阶组件的概念应该是来源于JavaScript的高阶函数:高阶函数就是接受函数作为输入或者输出的函数 高...

  • JavaScript高阶函数

    JavaScript高阶函数(Heigher-order function) 概念 《javascript设计模式...

  • JavaScript 高阶函数浅析

    高阶函数 在 JavaScript 中,函数是一种特殊类型的对象,它们是 Function objects。高阶函...

  • JavaScript 高阶函数

    高阶函数是将函数作为参数或返回函数的函数。 之所以可以使用 JavaScript 编写高阶函数,是因为函数是值,这...

  • javascript 函数(map、reduce)

    高阶函数 函数的参数可以接收另一个函数,这类函数称之为高阶函数 map JavaScript的map()是Arra...

  • JavaScript学习笔记(三)

    主要源于廖雪峰老师的JavaScript教程 1. 高阶函数 参数传入函数 JavaScript的函数其实都指向某...

  • javascript高阶特性

    javascript高阶特性之-curry化(柯里化) javascript高阶特性-串行执行promises j...

网友评论

    本文标题:javascript之高阶函数

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