title: How can I override property in this situation
body: <p>I'm new to JavaScript so if I'm misunderstanding a concept, please feel free to let me know.</p>
  
  <p>I have the following class:</p>
  
  <pre><code>var Human = function () {};
  Object.defineProperty(Human.prototype, 'name', {
       get: function () { return this._name; },
       set: function (value) { this._name = value; },
       configurable: true,
       enumerable: true
  });
  </code></pre>
  
  <p>I then define the following child object:</p>
  
  <pre><code>var Man = function () {};
  Man.prototype = new Human(); //Am I inherting Human's prototype (and properties) here?
  Man.prototype.name = 'Matt'; //If so, I should be setting Man's name property (overriding the value inherited from Human)
  </code></pre>
  
  <p>However, <code>console.log(Man.name)</code> prints out <code>""</code>.</p>
  
  <p>Why is this and how can I correctly override <code>Human</code>'s property?</p>
  
  <p><strong>PS</strong>:</p>
  
  <p>I have also tried</p>
  
  <pre><code>Man.name = 'Matt';
  </code></pre>
  
  <p>instead of</p>
  
  <pre><code>Man.prototype.Name = 'Matt';
  </code></pre>
  
  <p>But I got the same behaviour.</p>
  
  <p><strong>Ps2:</strong></p>
  
  <p>I should also note that if I execute <code>console.log(Man.prototype._name)</code> i get the expected output <code>"Matt"</code></p>