title: Is there a difference between extending Object vs not extending at all in javascript?
body: <p>I found out that I can extend Object like this:</p>
  
  <pre><code>class MyObject extends Object {}
  </code></pre>
  
  <p>Is there any difference with this and not extending at all, like this:</p>
  
  <pre><code>class MyObject {}
  </code></pre>
  
  <p>The reason I ask this is because I have the following mixin:</p>
  
  <pre><code>const MapMixin = (Base = Object) =&gt; class extends Base {
    static from(array) {
      return new this(Object.assign(...array.map(([key, value]) =&gt; ({[key]: value}))));
    }
  
    map(...args) {
      return this.constructor.from(this.entries().map(...args));
    }
  
    entries() {
      return Object.entries(this);
    }
  };
  </code></pre>
  
  <p>This mixin could be used like this:</p>
  
  <pre><code>class MyObject extends MapMixin(MyBaseClass) {}
  </code></pre>
  
  <p>But if there is no base class, I now have specified that it then extends <code>Object</code> as default:</p>
  
  <pre><code>class MyObject extends MapMixin() {}
  </code></pre>
  
  <p>So I'm wondering, if this practically works the same as not extending anything at all.</p>