Классы в JavaScript
В предыдущей теме мы пришли вот к такому образцу кода
function Animal(name, voice) {
this.name = name;
this.voice = voice;
}
Animal.prototype.say = function() {
console.log(this.name, 'says', this.voice)
}
const dog = new Animal('dog', 'woof');
dog.say(); // dog says woof
С появлением в JavaScript классов писать подобный код стало удобнее
class Animal {
constructor(name, voice) {
this.name = name;
this.voice = voice;
}
say() {
console.log(this.name, 'says', this.voice)
}
}
const dog = new Animal('dog', 'woof');
dog.say();
Классы это синтаксический сахар. Они не создают никакой новой функциональности, но делают более простой и удобной работу с прототипами.
На основе базового класса Animal мы можем создавать дочерние классы и добавлять им новые свойства