 <p>When angular is creating your controller, it will use the <code>new</code> keyword on the function you passed in. Thus, it will construct a new object using the constructor you passed in. Constructing objects using a constructor function will always return the instance of the newly created object. </p> <p>There are some details about the constructing process (see <a href="http://stackoverflow.com/a/1978474/576725">this</a> SO answer) </p> <ol> <li>When the returned object is the same as <code>this</code> it can be omitted, as it will be returned by default</li> <li>If returning some primitive type, null, or something different (described in the other SO answer) also <code>this</code> will be returned.</li> <li>If returning an instance, the reference to this instance will be returned.</li> </ol>