title: How does JavaScript "writable" property descriptor work?
body: <p>Why does the JavaScript "writable" property descriptor not forbid any property changes?</p>
  
  <p>For example:</p>
  
  <pre><code>var TheDarkKnight = Object.create(Superhero, {
      "name": {
          value:"Batman",
          writable:"false"
      }
  });
  
  TheDarkKnight.name; //"Batman";
  
  TheDarkKnight.name = "Superman";
  TheDarkKnight.name; //"Superman";
  </code></pre>
  
  <p>I thought <code>TheDarkKnight.name</code> should still return <code>"Batman"</code> after I tried to change it to another value because I set the "writable" property descriptor to <code>false</code>.</p>
  
  <p>So how to use it in the right way?</p>