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]
的字符串。