title: Good pseudoclassical JavaScript inheritance pattern?
body: <p>Reading 'Javascript The good Parts' from Crocksford, I've been in a quest to write some <em>efficient, readable and reusable</em> JavaScript code.
  That's all I aim, and particularly like the Object's properties being public.</p>
  
  <p>That being said, is there any particular <strong>problem</strong> or point of improvement to this <strong>code?</strong>  </p>
  
  <pre><code>( function(){
  
      window.App = {}
  
      // define uma pessoa normal
      App.Person = function(name){
          this.name = name || "anon"
          this.iq = 100
          this.fortune_number = Math.floor(Math.random()*100)
      }
  
      App.Person.prototype.sayName = function() {
          return (this.name+"!")
      }
  
      App.Person.prototype.sayIQ = function() {
          return (this.iq)
      }
  
  
  
      // define um genio da humanidade
      App.Genius = function(name) {
          App.Person.call( this, name )
          this.iq = 9000
      };
      // inherits All methods from Pessoa
      App.Genius.prototype = App.Person.prototype
  
      App.Genius.prototype.solveNP = function() {
          return "eureka!"
      };
  
  })()
  
  
  var p = new App.Person('Jon')
  console.log( "A Person:", p.sayName(), p.fortune_number, p.sayIQ() )
  //-&gt; A Person: Jon! 10 100
  
  var g = new App.Genius( 'Eugenios' )
  console.log( "A Genious:", g.sayName(), g.fortune_number, g.sayIQ(), g.solveNP() )
  //-&gt; A Genious: Eugenios! 7 9000 eureka!
  </code></pre>
  
  <p>I'm particularly unsure if this line <code>App.Genius.prototype = App.Person.prototype</code> is good, because I usually see prototyping after some <em>new instance</em>, like in <a href="https://developer.mozilla.org/en/JavaScript/Guide/Details_of_the_Object_Model#section_12" rel="nofollow">Mozilla Guide</a></p>