javascript - 此代码如何在幕后工作?
问题描述
我正在关注一些教程,并提出了以下代码,但我无法理解它是如何在幕后工作的。任何人都可以请解释它实际上是如何工作的。
所以在这里我做了一个函数mapForEach。
const arr1 = [1, 2, 3]
const mapForEach = (arr, fn) => {
let newArr = []
for (let i = 0; i < arr.length; i++) {
newArr.push(
fn(arr[i])
)
}
return newArr;
}
现在在这里我制作了另外两个函数CheckPastLimit和CheckPastLimitSpecified。现在在这里 checkPastList 检查条件。到目前为止一切都很好。
const CheckPastLimit = (limiter, item) => {
return item > limiter
}
现在这里 CheckPastLimit 用作参数和 arr2 返回值,通过 CheckPastLimit 条件(项目 > 限制器)。所以我想知道这条线是如何工作的?这条线在幕后是如何运作的?
const arr2 = mapForEach(arr1, CheckPastLimit.bind(this, 1))
console.log(arr2)
解决方案
当我们在这里使用绑定时,我们实现了柯里化
这意味着CheckPastLimit.bind(this, 1)
将返回带有传递的第一个参数的新函数。
例子:
const multiply = (a, b) => a*b;
const multiplyByTwo = multiply.bind(this,2)
mltiplyBuTwo(5)// 5*2=10
推荐阅读
- azure - 如何让我的 AKS 群集向我的 ACR 进行身份验证?
- python-asyncio - 来自 aiohttp.ClientSession().post() 的带有多个图像文件的格式错误的请求
- java - Eclipse IDE 项目资源管理器窗口中的奇怪字符
- c++ - 在 Linux 终端中使用 `std::wstring` 和 `std::wcout` 打印拉丁字符
- twitter-bootstrap - Bootstrap 4 布局设计
- android - Android Studio 无法解决:.espresso:espresso-core:3.2.0
- excel - 将 300 张数据表添加到 Excel 的快速方法是什么?
- kubernetes - Kubernetes 变化原因
- sql - SQL如何查找随时间超过一个值的连续行数
- python - 使用tornado websockets时如何处理协程