Object.prototype.toString.call([value]):调用Object原型上的tostring方法,让方法执行的时候,方法中的this是要检测的数据类型,从而获取到数据类型所属类的详细信息
//>在所有的数据类型中,他们的原型上都有toString方法,除了Object.prototype.toString不是把数据值转换成字符串,其余的都是转换为字符串,而Object原型上的toString是检测当前实例隶属的详细信息的 (检测数据类型。。。)
console.log([12,23].toString());//=>"12,23"
console.log(/^d+$/.toString());//=>"/^d+$/"

//柯里化
const curring = (fn,arr = []) => {
let len = fn.length; //参数长度
return function(...arrs) {
let newArray = [...arr,...arrs] //类型,值
console.log(newArray)
if(newArray.length == len) {
return fn(...newArray)
} else {
return curring(fn,newArray)
}
}
}
function isType(typing, val) {
return Object.prototype.toString.call(val) == `[object ${typing}]`
}
let newSum = curring(isType)
let isString = newSum('String')
let isNumber = newSum('Number')
console.log(isString('hellow'))
console.log(isNumber('word'))
网友评论