vislite
Version:
灵活、快速、简单的数据可视化交互式跨端前端库
27 lines (23 loc) • 796 B
text/typescript
const toString = Object.prototype.toString
// 获取一个值的类型字符串[object type]
export function getType(value: any) {
if (value == null) {
return value === undefined ? '[object Undefined]' : '[object Null]'
}
return toString.call(value)
}
// 判断一个值是不是一个朴素的'对象'
export function isPlainObject(value: any) {
if (value === null || typeof value !== 'object' || getType(value) != '[object Object]') {
return false
}
// 如果原型为null
if (Object.getPrototypeOf(value) === null) {
return true
}
let proto = value
while (Object.getPrototypeOf(proto) !== null) {
proto = Object.getPrototypeOf(proto)
}
return Object.getPrototypeOf(value) === proto
}