从JS中的嵌套函数返回值

时间:2017-02-08 23:21:27

标签: javascript

超级初学者在这里,我读到了这里提出的类似问题,并没有解决我的问题。

我知道指示说我只应该修改最后一行(var burger ...),但我不能让这个通过。

var food = function() {
  return function() {
    return "HAMBURGER"
  }
}

var burger = food();

我想返回“HAMBURGER”,而是返回[功能]

2 个答案:

答案 0 :(得分:3)

当函数food返回一个匿名函数时,必须调用它来运行并产生一些结果:

var food = function() {
  return function() {
    return "HAMBURGER"
  }
}

var burger = food()(); // or food().call()
console.log(burger)

可以找到一篇关于函数调用的不同方法的有趣文章here

答案 1 :(得分:3)

如果你只想更改底线,你可以做的最简单的事情是将其改为:

var burger = food()();

相当于:

var burgerFunction = food();
var burger = burgerFunction();

您的函数返回一个函数,因此您需要同时调用它们