函数如何在Javascript中创建新函数?

时间:2016-02-20 23:00:51

标签: javascript

在Eloquent Javascript书中,我遇到了这段代码。 我理解这是如何工作和论证的传递,但我无法理解的是作者关于这段代码的陈述,它是一个可以创造另一个功能的功能!

我的问题是:它是如何创建新功能的?作者正在调用创建新函数的情况如何?我的意思是我们确定我们正在创建一个名为greaterThan的函数,它还有另一个函数,但是我无法看到更多的函数正在创建另一个函数!

我向你保证,在询问之前我已经阅读了很多类似的Q,但无法找到我想要的答案。谢谢你的时间和帮助

function greaterThan(n) {
  return function(m) {
    return m > n;
  };
}
var greaterThan10 = greaterThan(10);
console.log(greaterThan10(11));
// → true

1 个答案:

答案 0 :(得分:1)

正在第六行创建该功能。

var greaterThan10 = greaterThan(10);

这会创建一个函数greaterThan10,可用于检查数字是否大于10.您可以在第7行看到它。

编辑: 当在第6行调用函数greaterThan时,它返回嵌套函数,有效地生成

greaterThan10 = function(m){
    return m > 10;
};

作者正在致电greaterThan10新功能'由函数greaterThan创建。