title: When extending Obect.prototype and then using for in on a istance, js iterate through prototype too
body: <p>I add this method to the object prototype:</p>
  
  <pre><code>if( !Object.prototype.forEach ) {
      Object.prototype.add({
         'forEach': function(fn) {
              var object = this, ret;
  
              Object.keys(object).forEach(function(key) {
                  if (ret === false)
                      return;
  
                  ret = fn.call(null, object[key], key, object);
              });
  
              return object;
          }
      });
  }
  </code></pre>
  
  <p>then do this:</p>
  
  <pre><code> switch( typeOf( arguments[0] ) ) {
       case 'string':
           // ...
  
       case 'object':
           var prop;
           for(prop in arguments[0]) {
               // ...
           }
  </code></pre>
  
  <p>And the code iterates through <code>forEach</code> too. 
  if <code>arguments[0]</code> is <code>{a: 'a', b: 'b'}</code>, it iterates through <code>a,b,forEach</code>.
  How can I solve this?</p>
  
  <p>Thank you in advance.</p>