getTag
原创小于 1 分钟
getTag
是一个内部函数,用于获取一个变量的[object xxx]格式的描述,通过这个描述,可以获取到这个变量的类型:例如,传入一个数值类型,返回的就是[object Number],传入字符串,返回的就是[object String]等。
判断类型的函数基本上都依赖了这个函数。
const toString = Object.prototype.toString
function getTag(value) {
if (value == null) {
return value === undefined ? '[object Undefined]' : '[object Null]'
}
return toString.call(value)
}
首先判断了这个函数是否是null或者undefined,如果是,再判断究竟是null还是undefined,并返回相应的结果。
然后用call方法调用了Object.prototype.toString方法,该方法是原型上的一个方法,会根据变量类型,返回[object 构造函数]的字符串;再调用时,将this设置成了传入的参数,就可以获取到该变量的[object xxx]的字符串。