title: Is there an ES6+ alternative to doing Object.prototype.hasOwnProperty.call(obj, key)?
body: <p>The most bulletproof way of checking if an object has a certain key is:</p>
  
  <pre><code>Object.prototype.hasOwnProperty.call(obj, key)
  </code></pre>
  
  <p>This provides certain guarantees: it will only evaluate to <code>true</code> if <code>key</code> is a <strong>direct</strong> property of <code>obj</code>, and it will work even if <code>obj</code> doesn't have the usual <code>Object</code> as its prototype (for example, if it was created with <code>const obj = Object.create(null)</code>).</p>
  
  <p>But it's a mouthful.</p>
  
  <p>Is there any new syntax/method in ES6 or higher (including polyfillable or Babel-compilable 'proposals') that gives the same guarantees, but in a nicer, more readable way?</p>