首页 > 解决方案 > JavaScript:创建返回函数的函数,其中返回的函数调用传递的函数

问题描述

我正在尝试创建一个返回另一个函数的函数“三次”。

我有以下代码:

const thrice = (inputFunc) => {
  return inputFunc()
}

let eight;

eight = thrice(() => {
  return 8;
});

const value = eight();
value

我的期望是该值将等于:8。根据我的测试规范,它应该等于 8。

但是当我运行我的代码时,它会返回:TypeError: eight is not a function

我究竟做错了什么?我的预感是我应该return inputFunc在三次函数中做。但我从概念上不明白为什么。

标签: javascriptfunctioncallbackiteratorhigher-order-functions

解决方案


请注意

thrice(() => {
  return 8;
});

不是一个函数,而是一个函数调用,所以eight等于 8。所以要解决这个问题:

eight = ()=> thrice(() => {
  return 8;
});
// or

eight =function(){ thrice(() => {
  return 8;
});};

推荐阅读