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