Sobes.tech
Junior — Middle

Que abordagens existem em JavaScript para reutilização de código sem usar herança prototípica?

sobes.tech IA

Resposta da IA

Em JavaScript, para reutilizar código sem herança prototípica, frequentemente utilizam-se as seguintes abordagens:

  1. Funções de ordem superior e composição de funções — criar funções pequenas que podem ser combinadas para obter o comportamento desejado.

  2. Mixins — objetos ou funções que adicionam funcionalidades a outros objetos através da cópia de propriedades.

  3. Decoradores — funções que envolvem outras funções, expandindo o seu comportamento.

  4. Módulos — separar o código reutilizável em ficheiros ou espaços de nomes distintos.

  5. Classes com composição em vez de herança — incluir objetos como propriedades em vez de herdar.

Exemplo de um mixin:

const canEat = {
  eat() {
    console.log('A comer');
  }
};

const canWalk = {
  walk() {
    console.log('A caminhar');
  }
};

function createPerson(name) {
  let person = { name };
  return Object.assign(person, canEat, canWalk);
}

const person = createPerson('João');
person.eat(); // A comer
person.walk(); // A caminhar

Desta forma, a reutilização é alcançada através de composição e união de funcionalidades, e não através de herança prototípica.