redux 之isPlainObject
export default function isPlainObject(obj) { /**obj必须为一个对象且不能为null */ if (typeof obj !== 'object' || obj === null) return false let proto = obj while (Object.getPrototypeOf(proto) !== null) { /**查找原型链,如果没到顶层继续查找 */ proto = Object.getPrototypeOf(proto) } /**返回当前对象的原型的原型是否等于null(即是否是顶层且没有其他继承关系) */ return Object.getPrototypeOf(obj) === proto } /**如果以下情况返回true: * typeof必须为Object * 没有大于1层的继承关系,且顶层的原型为null * 即obj._proto_._proto_==null */
前端笔记0-0