title: trying to understand underscore.js
body: <p>When going through the underscore.js library, i came across</p>
  
  <pre><code>for (var i = 0, l = obj.length; i &lt; l; i++) {
      if (i in obj &amp;&amp; iterator.call(context, obj[i], i, obj) === breaker) return;
  }
  
  // Establish the object that gets returned to break out of a loop iteration.
  breaker = {};
  </code></pre>
  
  <p>why is <code>return</code> used at the end? and what does <code>i in obj</code> check?</p>