is_object.js 510 B

12345678910111213141516
  1. function isObjectLike(value) {
  2. return typeof value === 'object' && value !== null;
  3. }
  4. export default function isObject(input) {
  5. if (!isObjectLike(input) || Object.prototype.toString.call(input) !== '[object Object]') {
  6. return false;
  7. }
  8. if (Object.getPrototypeOf(input) === null) {
  9. return true;
  10. }
  11. let proto = input;
  12. while (Object.getPrototypeOf(proto) !== null) {
  13. proto = Object.getPrototypeOf(proto);
  14. }
  15. return Object.getPrototypeOf(input) === proto;
  16. }