javascript - 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
在三次函数中做。但我从概念上不明白为什么。
解决方案
请注意
thrice(() => {
return 8;
});
不是一个函数,而是一个函数调用,所以eight
等于 8。所以要解决这个问题:
eight = ()=> thrice(() => {
return 8;
});
// or
eight =function(){ thrice(() => {
return 8;
});};
推荐阅读
- bash - SLURM 中的每个任务都需要一个 bash 文件吗?
- django-rest-framework - DRF - 如何在 CreateAPIView 中获取创建的对象
- javascript - 执行 AJAX 调用时不调用 Django 视图
- javascript - 在填字游戏中查找另一个字符串中的字符串旋转
- git - Cargo:它如何找到要使用的 git 二进制文件
- javascript - 使用 js 检查 url 模式
- javascript - 在 Telegram 机器人返回错误中创建 INVOICE
- microsoft-teams - 替代 navigateCrossDomain (@microsoft/teams-js)
- azure - Azure 资源管理器 - 比较两个参数是否相等
- c# - 为什么asp.net核心模型绑定不起作用?