javascript - 理解 JavaScript 代码 - 将值传递给已由具有值的函数定义的对象
问题描述
我对为什么console.log(twice(5))
会打印 10 感到困惑。当它已经使用具有其值的函数定义时,两次取值为 5 是什么意思?
function multipler(factor){
return number => number * factor;
}
let twice = multipler(2);
console.log(twice(5));
但如果我尝试打印console.log(multipler(2))
,它只会打印[Function]
解决方案
该函数multipler
(请注意,您可能指的是multiplier
)返回一个函数。所以,打电话multipler(2)
给你这个:
number => number * 2
这是一个等效于这个的函数:
function (number) {
return number * 2;
}
那就是你存储在twice
. 所以,twice(5)
返回10
。
推荐阅读
- constructor - Solidity ParserError:预期的标识符,但得到了 '(' constructor() public { ^
- javascript - TypeError: _fire__WEBPACK_IMPORTED_MODULE_11__.default.collection 不是函数
- google-play - 如何使用最新版本更新旧版本的应用程序(内部测试)?
- node.js - 多个访客请求存在问题
- api - Travis CI - 是否可以在 Travis CI 上使用 2 个存储库进行构建?
- angular - 使用异步管道的 Material Stepper 动态初始化
- java - JAR 作为应用程序安装时未生成应用程序日志
- spring-boot - 简单的网络 CRUD WebFlux 应用程序:Netty 有什么用处?
- python-3.x - 无法从 Tkinter 拉取上传加载的数据
- android - 版本控制中的 Android 调试密钥库