title: Inherited properties prevent setting actual properties?
body: <p>I'm trying to inherit default spec properties, such that, when I create specific overwriting values in inheriting specs, I will still have access to (through inheritance) the unmodified spec values:</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>let default_boltSpec = {
    head_diameter: 2,
    shaft_diameter: 0.8,
  };
  Object.freeze(default_boltSpec);
  
  let derivedBoltSpec = Object.create(default_boltSpec);
  console.log( "derivedBoltSpec:", derivedBoltSpec );
  
  Object.assign(derivedBoltSpec , {
    head_diameter: 1.5,
  });</code></pre>
  </div>
  </div>
  </p>
  
  <p>The weird thing is that I seemingly am not allowed to "overwrite" inherited values! How can values that are strictly on the prototype chain in any way interfere with what properties I am allowed to put on my object?</p>
  
  <p>EDIT:
  This screenshot shows the effect of running the above code snippet in the Firefox web developer console:
  <a href="https://i.stack.imgur.com/654JN.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/654JN.png" alt="enter image description here"></a></p>
  
  <p>This image reveals that Object.create does not add any properties to the created object. This is in harmony with <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create" rel="nofollow noreferrer">the documentation</a>.</p>