title: Difference between Object.prototype.hasOwnProperty.call and {}.hasOwnProperty.call.(eslint rule guard-for-in)
body: <p>In the eslint rule <a href="http://eslint.org/docs/rules/guard-for-in" rel="nofollow noreferrer">guard-for-in</a> , use <code>for in</code> directly is incorrect. The good practice is </p>
  
  <pre><code>for (key in foo) {
      if (Object.prototype.hasOwnProperty.call(foo, key)) {
          doSomething(key);
      }
      if ({}.hasOwnProperty.call(foo, key)) {
          doSomething(key);
      }
  }
  </code></pre>
  
  <p>My question is when <code>Object.prototype.hasOwnProperty.call(foo, key)</code> and <code>{}.hasOwnProperty.call(foo, key)</code> will lead different result? Anyone can show a specific example? </p>