title: Why/when do you need to reopen classes in ember.js?
body: <p>There are times when you use <code>App.Model.reopenClass()</code> on a model (<a href="http://emberjs.com/guides/object-model/reopening-classes-and-instances/">link</a>) and the Ember guides talk about <code>App.Router.reopen()</code> (<a href="http://emberjs.com/guides/routing/#toc_specifying-a-root-url">link</a>).  From the Ember guides: </p>
  
  <blockquote>
    <p>reopen is used to add instance methods and properties that are shared
    across all instances of a class. It does not add methods and
    properties to a particular instance of a class as in vanilla
    JavaScript (without using prototype).</p>
    
    <p>But when you need to create class methods or add properties to the
    class itself you can use reopenClass.</p>
  </blockquote>
  
  <p>When is this necessary/advantageous?  Is it not possible to just add everything right up front? </p>