function isPlainObject (obj) {
  if (obj === null) return false

  if (typeof obj !== 'object' || obj.nodeType || (obj === obj.window)) return false

  if (obj.constructor && !hasOwnProperty(obj.constructor.prototype, 'isPrototypeOf')) return false

  /* Most likely |obj| is a plain object, created by {} or constructed with new Object */
  return true
}
Taken from jQuery 2.1.3

#### NOTE
Not plain objects is,
- Any object or value whose internal [[Class]] property is not "[object Object]"
- DOM nodes
- window

@param {Object} obj - Variable name
@returns {Boolean}