学习Javascript:高阶函数代码疑问,求解释for循环中action(i)的作用
代码运行逻辑及
action(i)含义解答 整体运行逻辑
这段代码定义了一个JS高阶函数repeat,功能是将指定操作重复执行n次,逻辑如下:
- 函数接收两个入参:
n为重复执行的次数,action为每次要执行的操作函数 - 内部
for循环从1开始计数到n,每次循环都会触发一次传入的action操作
action(i)的核心含义与作用
这是这段代码最核心的高阶函数用法:
action是形参,你调用repeat时传入什么函数,它就指代什么函数,JS支持直接把函数作为参数传递action(i)就是调用你传入的操作函数,同时把当前循环的序号i作为实参传给这个操作函数- 作用是把循环内部的当前序号暴露给外部的操作逻辑,让自定义操作可以用到每次循环的计数值
调用示例说明
示例1:repeat(10, console.log)
这里传入的操作是控制台打印函数console.log,循环内的action(i)等价于console.log(i),执行后会依次在控制台输出1到10,总共10条日志。
示例2:repeat(3, alert)
这里传入的操作是浏览器弹窗函数alert,循环内的action(i)等价于alert(i),执行后会依次弹出内容为1、2、3的三个弹窗。
拓展用法示例
你也可以传入自定义的函数实现个性化需求,比如输出1到5的平方:
function printSquare(num) { console.log(num * num) } repeat(5, printSquare) // 执行后输出:1、4、9、16、25
内容的提问来源于stack exchange,提问作者Dedec
相关产品推荐
相关产品推荐

