Зачем использовать геттеры и сеттеры в JavaScript?
Я знаю, как getter и setter работают в JavaScript. Я не понимаю, почему они нужны нам, когда мы можем получить тот же результат, используя обычные функции? Рассмотрим следующий код:
var person = {
firstName: 'Jimmy',
lastName: 'Smith',
get fullName() {
return this.firstName + ' ' + this.lastName;
}
}
console.log(person.fullName); // Jimmy Smith
Мы можем легко заменить геттер на функцию:
var person = {
firstName: 'Jimmy',
lastName: 'Smith',
fullName: function() {
return this.firstName + ' ' + this.lastName;
}
}
console.log(person.fullName()); // Jimmy Smith
Я не вижу смысла писать геттер и сеттер.
Ответы
Ответ 1
Разница между использованием метода получения или установки и использованием стандартной функции заключается в том, что методы получения/установки автоматически вызываются при назначении. Таким образом, это выглядит как обычное свойство, но за кулисами у вас может быть дополнительная логика (или проверки), которые будут выполняться непосредственно перед или после назначения.
Таким образом, если вы решите добавить этот вид дополнительной логики в одно из существующих свойств объекта, на которое уже есть ссылка, вы можете преобразовать его в стиль получения/установки, не изменяя остальную часть кода, имеющего доступ к этому свойству.