// doesn't work like you want! Bar.prototype = Foo.prototype; // works kinda like you want, but with // side-effects you probably don't want :( Bar.prototype = new Foo(); // pre-ES6 // throws away default existing `Bar.prototype` Bar.prototype = Object.create( Foo.prototype ); // ES6+ // modifies existing `Bar.prototype` Object.setPrototypeOf( Bar.prototype, Foo.prototype );