JavaScript:创建Returns函数,返回函数调用传递函数

JavaScript: Create Function that Returns Function in which Returned Function Invokes Passed Function

我正在尝试创建一个 "thrice" 函数 returns 另一个函数。

我有以下代码:

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

let eight;

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

const value = eight();
value

我的预期是该值等于:8。根据我的测试规格,它应该等于 8。

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

我做错了什么?我的直觉是我应该在三次函数中执行 return inputFunc 。但我在概念上不明白为什么。

注意

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

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

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

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