有人可以向我解释这个功能是如何工作的吗?
Can someone explain to me how this function works?
我正在学习编码,并且正在尝试理解高阶函数和抽象。不明白这段代码怎么跑到return"true".
function greaterThan(n) {
return function(m) { return m > n; };
}
var greaterThan10 = greaterThan(10);
console.log(greaterThan10(11));
感谢您的帮助。
函数greaterThan
returns一个函数在调用的时候。即使在函数返回之后,返回的函数也可以访问外部函数的所有成员。这叫做closure
.
function greaterThan(n) {
return function (m) {
return m > n;
};
}
执行以下语句时
var greaterThan10 = greaterThan(10);
转换为
var greaterThan10 = function (m) {
return m > 10;
};
所以,greaterThan10
现在是函数,可以调用为
console.log(greaterThan10(11));
现在,m
的值为 11
,return 11 > 10;
returns 为 true
。
阅读更多关于闭包的信息:
How do JavaScript closures work?
此外,我会向所有 JS 开发人员推荐很棒的文章
我正在学习编码,并且正在尝试理解高阶函数和抽象。不明白这段代码怎么跑到return"true".
function greaterThan(n) {
return function(m) { return m > n; };
}
var greaterThan10 = greaterThan(10);
console.log(greaterThan10(11));
感谢您的帮助。
函数greaterThan
returns一个函数在调用的时候。即使在函数返回之后,返回的函数也可以访问外部函数的所有成员。这叫做closure
.
function greaterThan(n) {
return function (m) {
return m > n;
};
}
执行以下语句时
var greaterThan10 = greaterThan(10);
转换为
var greaterThan10 = function (m) {
return m > 10;
};
所以,greaterThan10
现在是函数,可以调用为
console.log(greaterThan10(11));
现在,m
的值为 11
,return 11 > 10;
returns 为 true
。
阅读更多关于闭包的信息:
How do JavaScript closures work?
此外,我会向所有 JS 开发人员推荐很棒的文章