title: What is the appropriate / recommended way to use hasOwnProperty?
body: <p>Provided that the object MAY contain own property called "hasOwnProperty":</p>
  
  <pre><code>&gt; a={abc: 123};
  { abc: 123 }
  &gt; a.hasOwnProperty("abc");
  true
  &gt; a['hasOwnProperty'] = 1;
  1
  &gt; a.hasOwnProperty("abc");
  TypeError: a.hasOwnProperty is not a function
  ...
  </code></pre>
  
  <p>This works, kinda ugly interface, if you think about Object.keys(), Object.assign() ETC.. So, is there a better way?</p>
  
  <pre><code>&gt; Object.hasOwnProperty.call(a, "abc");
  true
  &gt; Object.hasOwnProperty.call(a, "hasOwnProperty");
  true
  </code></pre>
  
  <p>And why shouldn't the solution be the only recommended way? Using methods directly from an object seems like a recipe for a failure, especially if it is containing external data (not in one's control)</p>