Difference between Object.method(o) and o.method()
<blockquote>
  <p><strong>Possible Duplicate:</strong><br>
  <a href="http://stackoverflow.com/questions/13239317/why-is-it-object-defineproperty-rather-than-this-defineproperty-for-objects">Why is it Object.defineProperty() rather than this.defineProperty() (for objects)?</a>  </p>
</blockquote>



<p>I noticed that all the methods of a particular object can be called from the actual object instance, i.e., <code>object.method();</code> or by passing the object to <code>Object.method()</code> as an argument. For example:</p>

<pre><code>var a = ['one', 2, 3, 'four'];
a.reverse();
// OR
Array.reverse(a);
</code></pre>

<p>I seemed to get the same behaviour. I was wondering what the difference was and when one would be used over the other?</p>
