首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按变量调用函数

按变量调用函数
EN

Stack Overflow用户
提问于 2017-04-15 00:40:29
回答 2查看 70关注 0票数 0

我最近开始自学javascript,我正在读一本叫做“雄辩的JavaScript”的书。以下代码是本书中的示例脚本,让我感到困惑:

代码语言:javascript
复制
function greaterThan(n) {
   return function(m) { return m > n; };
}
var greaterThan10 = greaterThan(10); 
console.log(greaterThan10(11));

谁能解释一下最后两行的逻辑吗?greaterThan10是包含真值还是函数?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-15 00:57:00

一开始它看起来有点混乱,但请记住,函数是JavaScript中的对象。

greaterThan(n)--一个返回带有定义的匿名函数的函数:

代码语言:javascript
复制
function(m) { return m > n; }

因此,当我们调用greaterThan(10)时,我们希望它返回一个实际上是函数的对象:

代码语言:javascript
复制
function(m) { return m > 10; }

稍后,我们只将该对象/函数赋值给一个变量,然后调用它,就像调用任何函数一样。

简而言之,想象一下我们有:

代码语言:javascript
复制
var greaterThan10 = function(m) { return m > 10; };
票数 0
EN

Stack Overflow用户

发布于 2017-04-15 00:48:02

在第二行到最后一行中定义greaterThan10

代码语言:javascript
复制
var greaterThan10 = greaterThan(10); 

在本例中,无论greaterThan函数返回什么,greaterThan10都将对其进行计算。

在第2行中,我们看到greaterThan将返回以下函数表达式:

代码语言:javascript
复制
function(m) { return m > n; }

在将变量n替换为您传递的值之后,我们得到如下结果:

代码语言:javascript
复制
function(m) { return m > 10; }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43420972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档