Description A prototype can be seen as an object another object extends. Syntax let protoRabbit = { speak(line) { console.log(`The ${this.type} rabbit says '${line}'`); // : The killer rabbit says 'SKREEEE!' }, }; let killerRabbit = Object.create(protoRabbit); killerRabbit.type = "killer"; killerRabbit.speak("SKREEEE!"); Object.prototype Most objects in JavaScript eventually extend Object.prototype through parent prototype objects or directly, which provides a bunch of default methods1. console.log(Object.getPrototypeOf({}) == Object.prototype); // true console.log(Object.getPrototypeOf(Object.prototype)); // null Footnotes Footnotes https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object ↩