title: Why is Object.keys faster than hasOwnProperty?
body: <pre><code> // hasOwnProperty approach 
   for (key in obj) {
    if (obj.hasOwnProperty(key)) {
      value = obj[key];
    }
  }
  
  // Object.keys approach 
  keys = Object.keys(obj);
  for (i = 0, l = keys.length; i &lt; l; i++) {
    value = obj[keys[i]];
  }
  </code></pre>
  
  <p>According to jsperf the Object.keys approach is 50%+ faster <a href="http://jsperf.com/object-keys-vs-hasownproperty/45" rel="noreferrer">http://jsperf.com/object-keys-vs-hasownproperty/45</a></p>
  
  <p>Why is this?</p>