title: three.js inheritance pattern
body: <p>I want to know why the three.js code is structured like this:</p>
  
  <pre><code>THREE.Camera = function(){
      THREE.Object3D.call(this);
      //add more Camera specific properties and methods
  }
  
  THREE.Camera.prototype = new THREE.Object3D();
  THREE.Camera.prototype.constructor = THREE.Camera;
  
  THREE.Camera.prototype.//add more camera specific methods...
  </code></pre>
  
  <p>I want to know why they call the base constructor in the current constructor and also for the prototype?</p>
  
  <p>In MDN they show a pattern like this:</p>
  
  <pre><code>subType = function(){
      //new properties for subType
  }
  
  subType.prototype = new baseType();
  </code></pre>
  
  <p>They don't have the call to the base constructor in the subType constructor, so why does THREE.js do this?</p>