ut2
Version:
一个现代 JavaScript 实用工具库。[点击查看在线文档]。
19 lines (16 loc) • 752 B
JavaScript
import getTag from './internals/getTag.js';
import { functionProtoToString, objectTag, objectProtoHasOwnProperty, objectGetPrototypeOf } from './internals/native.js';
import isObjectLike from './isObjectLike.js';
var objectCtorString = functionProtoToString.call(Object);
function isPlainObject(value) {
if (!isObjectLike(value) || getTag(value) !== objectTag) {
return false;
}
var proto = objectGetPrototypeOf(Object(value));
if (proto === null) {
return true;
}
var Ctor = objectProtoHasOwnProperty.call(proto, 'constructor') && proto.constructor;
return typeof Ctor === 'function' && Ctor instanceof Ctor && functionProtoToString.call(Ctor) === objectCtorString;
}
export { isPlainObject as default };