请问函数greaterThan的return语句如何工作?变量m的作用是什么?
拆解
greaterThan 函数:闭包、return语句与变量m的作用 嘿,我来帮你把这个函数的逻辑掰碎了讲明白,它其实是JavaScript里闭包的典型应用,咱们一步步拆解:
1. 整体函数结构
greaterThan(n) 是一个高阶函数(接收参数或返回函数的函数),它的核心逻辑是返回另一个箭头函数。咱们把代码转换成更易懂的常规写法,功能完全一致:
function greaterThan(n) { // 返回一个新的函数 return function(m) { return m > n; }; }
2. return语句的工作机制
当你调用 greaterThan(n) 时,它并不会直接返回比较结果,而是返回一个新的函数。这个返回的函数有个特殊能力:它能“记住”外部函数 greaterThan 里的参数n——这就是闭包的魔力:内部函数可以访问并保留外部函数作用域中的变量,哪怕外部函数已经执行结束。
比如你执行 const isGreaterThan10 = greaterThan(10),此时 isGreaterThan10 就变成了一个专门判断“某个值是否大于10”的函数,它内部已经把n固定为10了。
3. 变量m的具体作用
m 是返回的那个箭头函数的参数,当你调用这个返回的函数时,传入的值会被赋值给m,它就是用来和之前的基准值n做比较的“待判断值”。
举个实际调用的例子,一看就懂:
const isGreaterThan5 = greaterThan(5); console.log(isGreaterThan5(7)); // 输出 true(7 > 5) console.log(isGreaterThan5(3)); // 输出 false(3 < 5)
这里调用 isGreaterThan5(7) 时,m 就是7,函数内部执行 7 > 5 的判断,最终返回布尔结果。
总结
这个函数的本质是生成一个“自定义比较器”:你传入一个基准值n,它就给你一个专属函数,后续用这个函数传入任意值m,就能快速判断m是否大于n。闭包让内部函数能一直保留n的值,而m就是每次需要比较的目标值。
内容的提问来源于stack exchange,提问作者Falko
相关产品推荐
相关产品推荐

