JavaScript高级语法之一等公民——函数(高阶函数)

JavaScript中一等公民 —— 函数

在JavaScript中,函数是非常重要的,并且是一等公民。所谓的一等公民到底是什么呢?

首先,函数的使用是非常灵活的;
其次函数可以作为另外一个函数的参数;
最后函数也可以终作为一个函数的返回值使用。(高阶函数

接下来就展示一下函数的灵活性。

1.函数作为参数使用

// 将函数做为另一个函数的参数
function foo (a) {
   a()
}
function fn () {
    console.log('fn')
}

foo(fn) //将函数fn 作为函数foo的参数使用   输出结果为 fn

上面展示了一个最简单的使用,供大家参考理解,接来下展示一个小案例,示例代码如下:

// 创建一个calc函数,前两个参数为数字,第三个参数为计算函数 (名称顺序均为自定义)
function calc (num1, num2, calcFn) {
    console.log(calcFn(num1, num2))
}

// 创建一个加法函数
function add (num1, num2) {
    return num1 + num2
}
// 创建一个减法函数
function sub (num1, num2) {
    return num1 - num2
}
// 创建一个乘法函数
function mul (num1, num2) {
    return num1 * num2
}

var a = 20
var b = 30
// 调用calc函数传递不同的函数作为第三个参数,进行不同的方法计算,得到不同的输出结果
calc(a, b, add) // 50
calc(a, b, sub) // -10
calc(a, b, mul) // 600

2.函数作为返回值使用

众所周知,JS语法是允许在函数内部再定义函数的。
如下展示一个通俗易懂的小demo进行展示函数作为返回值的使用,示例代码如下:

// 在foo函数中嵌套一个bar函数
function foo () {
    function bar () {
        console.log('bar')
    }
    
    return bar // bar函数做为foo函数的返回值使用
}
var fn = foo()
fn() // bar

变量fn被赋值后就指向于foo函数中的bar函数,所以对fn()进行调用的到bar函数的打印结果

接着展示一个稍微有一丢丢绕的小demo(其实一点都不绕),示例代码如下:

// add函数作为makerAdder函数的返回值使用, makeAdder函数接收一个count的参数
function makeAdder (count) {
	// add函数接收一个num的参数,返回count与num的和
    function add (num) {
        return count + num
    }

    return add
}

var add5 = makeAdder(5)  //  此时的add5 意味着等于 函数makeAdder中的函数add
console.log(add5(6)) // 11 
console.log(add5(10)) // 15

这里给补充一个高阶函数的定义 :把一个函数如果接收另一个函数作为参数,或者该函数会返回另个一个函数作为返回值的函数,那么这个函数就称之为高阶函数。
所以上面的两个知识点所展示的代码都可以称为高阶函数。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不苒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值