javascript - 文本中的函数示例对我来说没有意义

标签 javascript function

通过阅读 Eloquent javascript,试图让我的头脑了解函数,我阅读了以下示例代码:

function makeAddFunction(amount) {
  function add(number) {
    return number + amount;
  }
  return add;
}

var addTwo = makeAddFunction(2);
var addFive = makeAddFunction(5);
show(addTwo(1) + addFive(1));

我明白了它的要点,但是在几个小时内多次检查了代码并阅读了随附的文本后,我并没有明白这一点:这段代码到底是做什么的? add 函数从哪里获取 number 参数?它来自 show 命令吗?如果是这样,它是如何传播的?我只是没看到...

最佳答案

函数makeAddFunction接受一个数字(amount)并返回一个函数,该函数将作为参数传入的数字添加到传递到外部函数的数字上。

function makeAddFunction(amount) {
   function add(number) {
     return number + amount;
   }

    return add;
}

调用var addTwo = makeAddFunction(2);相当于编写以下函数:

   var addTwo = function(number) {
     return number + 2;  // this function is actually returned by makeAddFunction
   }

您可以使用参数来调用它 addTwo(5);

这是一个 fiddle :http://jsfiddle.net/Eh4LK/1/按运行按钮执行

关于javascript - 文本中的函数示例对我来说没有意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18989634/

相关文章:

javascript - 通过 <a> 链接覆盖 jQuery 循环

javascript - 根据子div的宽度扩展父div

javascript - gzip 内容的 XMLHttpRequest 进度事件问题(FireFox 除外)

PHP - 传递函数返回另一个函数

附加了 ":"和 "?"的 PHP 函数,它有什么作用?

我们可以在 C 语言中声明一个函数和变量吗?

javascript - 尝试使用AJAX获取函数参数并传递给PHP代码

javascript - 如何确定拖放到 html 页面上的图像的大小和格式

javascript - 使用 AngularJs 中的属性指令动态地将行添加到表中

c - 函数总是分配到相同的地址,并且变量不会改变