判断朴素对象 
朴素对象指的是那些没有附加任何额外行为或方法的普通对象,它们是最基础的对象形态。创建方式一般为对象字面量或 new Object()
通过构造函数 
js
function isPlainObject(val) {
  if (typeof val !== 'object' || val === null) return false
  const proto = Object.getPrototypeOf(val)
  if (proto === null) {
    return true
  }
  // 构造函数
  const ctor = Object.prototype.hasOwnProperty.call(proto, 'constructor') && proto.constructor
  return ctor === Object
}使用 while 
js
function isPlainObject(val) {
  if (typeof val !== 'object' || val === null) return false
  let proto = val
  while (Object.getPrototypeOf(proto) !== null) {
    proto = Object.getPrototypeOf(proto)
  }
  return Object.getPrototypeOf(val) === proto
}