Gettery i settery to funkcje używane w programowaniu obiektowym do bezpiecznego dostępu i modyfikacji właściwości obiektu. W JavaScript, te metody umożliwiają kontrolę nad tym, jak wartości są pobierane i ustawiane, co może pomóc w zapewnieniu poprawności danych i w enkapsulacji.
Definiowanie getterów i setterów
Gettery i settery w JavaScript mogą być zdefiniowane wewnątrz literału obiektu lub za pomocą definicji klasy. Przyjrzyjmy się przykładowi użycia tych funkcji w kontekście klasy.
class Person {
constructor(name, age) {
this._name = name;
this._age = age;
}
// Getter dla `name`
get name() {
return this._name;
}
// Setter dla `name`
set name(newName) {
this._name = newName;
}
// Getter dla `age`
get age() {
return this._age;
}
// Setter dla `age`
set age(newAge) {
if (newAge > 0) {
this._age = newAge;
} else {
console.log("Wiek musi być większy od 0.");
}
}
}
W powyższym przykładzie, _name
i _age
to prywatne konwencjonalne właściwości, dla których zdefiniowano gettery i settery. Dzięki temu możemy kontrolować modyfikację i dostęp do tych właściwości.
Użycie getterów i setterów
let person = new Person("Jan", 30);
// Wyświetlanie imienia i wieku
console.log(person.name); // Wykorzystanie gettera
console.log(person.age); // Wykorzystanie gettera
// Ustawianie nowego imienia i wieku
person.name = "Anna"; // Wykorzystanie settera
person.age = 25; // Wykorzystanie settera
// Próba ustawienia niepoprawnego wieku
person.age = -5; // Wywołuje komunikat o błędzie
// Ponowne wyświetlenie zmienionych wartości
console.log(person.name);
console.log(person.age);
Korzyści z używania getterów i setterów
- Walidacja danych: Gettery i settery umożliwiają walidację danych przed ich przypisaniem do właściwości obiektu.
- Enkapsulacja: Pomagają ukryć wewnętrzną implementację i eksponować tylko to, co niezbędne.
- Dodatkowa logika: Możliwość dodania dodatkowej logiki przy odczycie lub zapisie właściwości.
Podsumowanie
Gettery i settery w JavaScript są potężnymi narzędziami do kontrolowania dostępu i modyfikacji danych w obiektach. Pozwalają na walidację i enkapsulację danych, co przyczynia się do większej bezpieczeństwa i czytelności kodu. Poprawne ich stosowanie jest kluczowe w budowaniu solidnych i skalowalnych aplikacji.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video JavaScript w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.