如何实现一个函数 isPlainObject 判断是否为纯对象
更多描述 纯对象:通过
Object
构造函数或者Object.create
构建,见下示例
{
a: 3;
}
Object.create({ a: 3 });
Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 409
Author 回答者: shfshanyue
function isPlainObject(obj: any): boolean {
if (typeof obj !== 'object' || obj === null) return false
let proto = obj
while (Object.getPrototypeOf(proto) !== null) {
proto = Object.getPrototypeOf(proto)
}
return Object.getPrototypeOf(obj) === proto }
}
Author 回答者: lstoryc
纯对象 如何定义?
Author 回答者: haotie1990
纯对象 如何定义?
通过Object
构造函数创建或__proto__
是null
Author 回答者: justorez
这样也可以吧:
const isPlainObject = (o) =>
Object.prototype.toString.call(o).slice(8, -1) === "Object";
Author 回答者: KellyVV130
obj.constructor === Object