JavaScript高阶函数代码疑问:参数m为何取0到5的值?
问题解答
先把你的代码整理成更易读的格式:
function repeat(n, action) { for (i = 0; i < n; i++) { action(i); } } function test(condition, result) { if (condition) result(); } repeat(6, m => test(m % 2 == 0, () => { console.log(m); }) )
核心逻辑拆解:
repeat函数里的for循环是关键:它初始化i=0,只要i < n(这里n是6)就继续循环,每次循环后i自增1。所以循环过程中i的取值依次是0、1、2、3、4、5,刚好是0到n-1(6-1=5)。- 每次循环都会调用
action(i),这里的action就是你传入的箭头函数m => test(...)——循环里的i会直接传给箭头函数的参数m,所以m就跟着i的变化,从0到5依次取值。 - 之后箭头函数里的
test(m%2==0, ...)会判断m是不是偶数,是的话就执行打印函数,所以最终控制台会输出0、2、4。
内容的提问来源于stack exchange,提问作者Hưng Trần
相关产品推荐
相关产品推荐

