如何判断是否是对象字面量

const a = new Set([1,2,3]);
const b = new Map();
const c = [1,2,3];
const d = null;
const e = {id:1}
const isPlainObject =  (obj) => {
    return Object.prototype.toString.call(obj) === '[object Object]';
};
console.log(isPlainObject(a)); //false
console.log(isPlainObject(b)); //false
console.log(isPlainObject(c)); //false
console.log(isPlainObject(d)); //false
console.log(isPlainObject(e)); // true

原理:

1.使用Object.prototype可返回创建实例对象的 Object 构造函数引用,然后使用toString,可将构造函数名称名称输出为字符串

2.使用call来借用Object.prototype.toString方法

posted @ 2022-04-23 08:54  我是格鲁特  阅读(52)  评论(0编辑  收藏  举报