Em JavaScript, quando um objeto é criado, ele possui automaticamente uma propriedade que referencia um outro objeto. Esse outro objeto é chamado de prototype. Todo objeto em JavaScript herda propriedades e métodos do seu prototype ascendente. Ou seja, o objeto acessa propriedades e métodos do seu protótipo ascendente. Essas propriedades não pertencem ao objeto em si, mas sim ao prototype do objeto.
classAnimal {constructor(name) {this.name = name }speak() {console.log(`${this.name} made some noise`); }}classCatextendsAnimal {constructor(name) {super(name); }}constcat=newCat('Ari');cat.speak();