标签:efi boolean pre 类型 核心 入参 object 数组 传递参数
function checkType(type,value){
return Object.prototype.toString.call(value) === `[object ${type}]`
}
// 使用
let res = checkType('String','123');
这个checkType函数返回的函数和传入的type组成了一个闭包函数,是传入的type在另一个函数中使用
function checkType(type){
return function(value){
return Object.prototype.toString.call(value)===`[object ${type}]`
}
}
// 使用
let isString = checkType('String');
let isNumber = checkType('Number');
console.log(isString('123'));
// 验证函数
function checkType(type,value){
return Object.prototype.toString.call(value) === `[object ${type}]`;
}
// 通用柯里化函数
function curring(fn,arr =[]){
let len = fn.length; // 代表fn需要传入参数的个数
return function(...args){
arr = [...arr, ...args];
if(arr.length < len ){
// 传入的参数达不到执行条件,递归继续接受参数
return curring(fn,arr);
}else{
return fn(...arr);
}
}
}
// 生成验证函数
let util = {};
let types = ['String', 'Number', 'Boolean', 'Null', 'Undefined'];
types.forEach(type => {
util[`is${type}`] = curring(checkType)(type);
})
console.log(util.isString('hello'))
标签:efi boolean pre 类型 核心 入参 object 数组 传递参数
原文地址:https://www.cnblogs.com/bonly-ge/p/11846231.html