柯里化

函数柯里化的含义:将多个参数的函数 转化成 一个一个传入参数的函数。

目的:函数参数复用延迟执行 它使用闭包记住之前传递的参数。

✅ 使用柯里化(参数复用

我们将函数改造一下,让它先接收"规则",返回一个专门检查这个规则的函数。

js 复制代码
// 柯里化:第一层接收规则,第二层接收内容
function curriedCheck(reg) {
    // 闭包记住了 reg
    return function(txt) {
        return reg.test(txt);
    }
}

// 1. 参数复用:我们先生成一个"专门检查手机号"的函数// 这里我们将 reg 参数固定(复用)在了 checkPhone 函数内部
const checkPhone = curriedCheck(/^1\d{10}$/);

// 2. 以后使用,只需要传内容,不需要再传正则了
checkPhone('13800000001'); // true
checkPhone('13800000002'); // true
checkPhone('13800000003'); // true// 甚至可以再生成一个"专门检查邮箱"的函数const checkEmail = curriedCheck(/@/);
checkEmail('abc@qq.com');

结论: 在这里,正则表达式这个参数被复用 了。checkPhone 就像是一个被填入了一半参数的模具,你只需要填入剩下的一半即可。

延迟执行

onClickreact 渲染的时候就会 直接求值执行

react在渲染时,onclick会执行{}中的函数。 如果 onclick={handlerDelete(id)} 那么在渲染的时候直接就执行了这个函数,还没有点击就删除了。

所以使用匿名函数 or 柯里化

匿名函数 onclick={()=> handlerDelete(id)}

柯里化:

相关推荐
离&染35 分钟前
vue.js2.x + elementui2.15.6实现el-select滚动条加载数据
前端·javascript·vue.js·el-select滚动加载
inferno42 分钟前
HTML基础(第一部分)
前端·html
kirinlau44 分钟前
pinia状态管理在vue3项目中的用法详解
前端·javascript·vue.js
zhuà!1 小时前
腾讯地图TMap标记反显,新增标记
前端·javascript·vue.js
未知原色1 小时前
web worker使用总结(包含多个worker)
前端·javascript·react.js·架构·node.js
ttod_qzstudio1 小时前
CSS改变图片颜色方法介绍
前端·css
curdcv_po2 小时前
我接入了微信小说小程序官方阅读器
前端·微信小程序
程序员鱼皮2 小时前
什么是 RESTful API?凭什么能流行 20 多年?
前端·后端·程序员
www_stdio2 小时前
让大语言模型拥有“记忆”:多轮对话与 LangChain 实践指南
前端·langchain·llm
inferno2 小时前
JavaScript 基础
开发语言·前端·javascript