Чем в классах JavaScript по функционалу различаются constructor и set? Почему при описании класса должно присутствовать и то, и другое? И для чего нужно _dogName, если есть просто dogName?class Dog
{
constructor(dogName)
{
this.dogName = dogName;
}
set dogName(value)
{
this._dogName = value;
}
get dogName()
{
return this._dogName;
}
}
let dog = new Dog("Rex");
console.log(dog.dogName);

21 Авг 2019 в 07:01
217 +1
1
Ответы
1

Constructor в JavaScript используется для создания экземпляра класса и инициализации его свойств. Set и get, с другой стороны, используются для установки и получения значений свойств объекта соответственно.

При описании класса оба метода могут быть полезными, так как constructor позволяет инициализировать объект при его создании, а set и get позволяют контролировать доступ к свойствам объекта и выполнять какую-то логику при их установке и получении.

В данном случае, _dogName используется для хранения значения свойства dogName и предотвращения возможной ошибки при вызове getter или setter методов. При этом dogName используется для доступа к значению свойства с помощью геттера и сеттера, который контролирует доступ к значению.

Поэтому использование как обычного свойства (dogName) так и "скрытого" свойства ( _dogName) в данном случае обеспечивает более гибкую и контролируемую работу с данными внутри объекта.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир