title: Copying values to an object clone/prototype
body: <p>Let's say I have the following object where I want to initialize it with values (outside a class):</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 person = {
      firstName: undefined,
      lastName: undefined,
      get fullName() {
          return `${this.firstName} ${this.lastName}`;
      }
  }
  let p = Object.create(person);
  p.firstName = 'Ralph';
  p.lastName = 'Smedley';
  console.log(p.fullName);</code></pre>
  </div>
  </div>
  </p>
  <p>Why doesn't the above work when doing the following?</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 person = {
      firstName: undefined,
      lastName: undefined,
      get fullName() {
          return `${this.firstName} ${this.lastName}`;
      }
  }
                           // use default Object so don't override inherited object
  let ralph = Object.assign({}, person, {firstName: 'Ralph', lastName: 'Smedley'});
  console.log(ralph.fullName);</code></pre>
  </div>
  </div>
  </p>
  <p>What would be the proper way to do this second approach?</p>