函数柯理化之参数复用
Posted web半晨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数柯理化之参数复用相关的知识,希望对你有一定的参考价值。
// 普通函数验证
function check(regExp, text) {
return regExp.test(text);
};
console.log(check(/^\\d+$/g, '123')); // true
console.log(check(/^\\d+$/g, '2d')); // false
console.log(check(/^[a-z]+$/g, 'text')); // true
console.log(check(/^[a-z]+$/g, '3d')); // false
// Currying 后
function curryingCheck(regExp) {
return function(regExp) {
return reg.test(regExp);
};
};
let hasNumber = curryingCheck(/^\\d+$/g);
let hasLetter = curryingCheck(/^[a-z]+$/g);
console.log(hasNumber('159')); // true
console.log(hasNumber('2d')); // false
console.log(hasLetter('3d')); // false
console.log(hasLetter('text')); // true
示例是一个正则的校验,正常来说直接调用 check 函数就可以,但是如果有很多地方都要校验是否有数字,其实就是需要将第一个参数 reg 进行复用,这样别的地方就能够直接调用 hasNumber,hasLetter 等函数,让参数能够复用,调用起来也更方便。
以上是关于函数柯理化之参数复用的主要内容,如果未能解决你的问题,请参考以下文章