title: Prototype object can be changed from instance
body: <p>Could someone explain this to me in a sensible way:</p>
  
  <pre><code>function One() {}
  
  One.prototype.obj = { key: 'value' };
  One.prototype.str = 'string';
  
  var inst1 = new One(),
      inst2 = new One();
  
  // now let’s change some things in our second instance
  
  inst2.obj.key = 'buh!';
  inst2.str = 'buh!';
  
  // ok, so what happens to our other instance?
  
  console.log( inst1.str ); // Yields 'string' (unaffected, expected)
  console.log( inst1.obj.key ); // Yields 'buh!' (!!)
  
  console.log( One.prototype.obj.key ); // is also 'buh!'
  </code></pre>
  
  <p>It seems that if a prototype contains an object, the instance you create using the <code>new</code> keyword has that object, but if you change it, you also change the prototype object, thus affecting all instances, like a sibling-inheritance-pattern...</p>
  
  <p>Is this the way it’s suppose to work?</p>