Разбираюсь потихоньку в javascript. Есть класс Weather в нем несколько свойств объявлено, вроде этого. И в нем функция(метод) для изменения этого самого свойства.
class Weather {
constructor() {
this.location;
// ну и т.д.
}
changeLocation(location) {
this.location = location;
}
}
В примере это выглядит как
const weather = new Weather();
const location = 'London, UK';
weather.changeLocation(location);
Мне не совсем понятно зачем здесь функция(метод)? Ведь можно просто
const weather = new Weather();
const location = 'London, UK';
weather.location = location;
Не проще ли так ? И не надо дергать функцию(метод). Как правильно? Как это принято делать?
Хорошей практикой является изменение свойств объекта через функцию. Это нужно для того, что ты или другой разработчик (если проект командный) не смог просто взять и поменять это свойство на что угодно. В случае с функцией ты сможешь добавлять всякие проверки на корректность нового значения.
class Weather {
constructor() {
this.location;
}
changeLocation(location) {
if (typeof location !== 'string') {
throw new Error('Invalid location value');
}
this.location = location;
}
}
const invalidLocation = [1,2,3, {test: 3}]; // невалидный тип
const validLocation = 'London, UK'; //валидный тип
const weather1 = new Weather();
weather1.location = invalidLocation; // таким кодом ты сможешь сломать свое приложение, но с сточки зрения кода все ок)
const weather2 = new Weather();
weather2.changeLocation(invalidLocation); // получишь ошибку и это свойство не будет присваиваться
const weather3 = new Weather();
weather3.changeLocation(validLocation); // ошибки не будет и код отработает корректно
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Мне необходимо в localStorage создать объект в котором будут хранится закладкиПытался найти какой нибудь гайд, решение ,пример как просто передать...
Всем привет! вот codePenЕсть картинка, src dataUrl