繁体   English   中英

有人可以向我解释这个功能是如何工作的吗?

[英]Can someone explain to me how this function works?

我正在学习编码,我正在尝试理解高阶函数和抽象。 我不明白这段代码如何运行以返回“true”。

function greaterThan(n) {
  return function(m) { return m > n; };
}

var greaterThan10 = greaterThan(10);

console.log(greaterThan10(11));

谢谢您的帮助。

函数greaterThan在调用时返回一个函数。 即使在函数返回后,返回的函数也可以访问外部函数的所有成员。 这叫做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值是11return 11 > 10; 返回为true

阅读更多关于闭包的信息:

JavaScript闭包如何工作?

另外,我建议关注所有JS开发人员的精彩文章

http://dmitryfrank.com/articles/js_closures

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM