The single responsibility principle states that a class, module, or function should have only one reason to change, meaning it should do one thing. class Animal { constructor(name) { this.name = name; } nomenclature() { console.log(`The name of the animal is ${this.name}`); } } let animal1 = new Animal('Elephant'); animal1.nomenclature(); // The name of the animal is Elephant // Sound class class Sound { constructor(name, soundMade) { this.name = name; this.soundMade = soundMade; } sound() { console.log(`${this.name} ${this.soundMade}s`); } } let animalSound1 = new Sound('Elephant', 'trumpet'); animalSound1.sound(); //Elephant trumpets // Feeding class class Feeding { constructor(name, feedingType) { this.name = name; this.feedingType = feedingType; } feeding() { console.log(`${this.name} is a/an ${this.feedingType}`); } } let animalFeeding1 = new Feeding('Elephant', 'herbivore'); animalFeeding1.feeding(); // Elephant is a/an herbivore