Getters and Setters w klasie JavaScript

Getters and Setters w klasie JavaScript

W klasie JavaScript Getters i Setters są używane do uzyskania lub ustawiania wartości właściwości. "Dostawać”To słowo kluczowe wykorzystywane do zdefiniowania rębacz metoda odzyskiwania wartości właściwości, podczas gdy „ustawić”Definiuje metodę settera do zmiany wartości określonej właściwości. Kiedy chcemy uzyskać dostęp do właściwości naszego obiektu JavaScript, stosowana jest wartość zwrócona metodą Gettera i aby ustawić wartość właściwości, metoda setter jest wywoływana, a następnie przekazujemy wartość jako argument, który chcemy ustawić.

W tym spisie omówione w JavaScript w JavaScript. Ponadto zademonstrujemy również przykłady związane z użyciem definicji Getter i Setter w klasie JavaScript. A więc zacznijmy!

Getters and Setters w klasie JavaScript

W poniższym przykładzie utworzymy „Pracownik„Klasa posiadająca konstruktor. Konstruktor „Pracownik„Klasa zainicjuje pracownika”nazwa”Do ciągu przekazanego jako argument:

classemployee
konstruktor (nazwa)
Ten.Nazwa = nazwa;

Teraz utworzymy obiekt klasy pracowniczej o nazwie „pracownik" i dodaj "Jacek„Jak nazwa:

Niech pracownik = nowy pracownik („Jack”);

Po zrobieniu tego możemy uzyskać dostęp do „nazwa„Własność„ „pracownik„Obiekt w następujący sposób:

konsola.Log (pracownik.nazwa);

Dane wyjściowe powyższego programu pokazano poniżej:

Czasami możesz nie chcieć bezpośrednio uzyskać dostępu do nieruchomości. Właśnie tam przychodzą para gettera i settera.

Przykład 1: Getters and Setters w klasie JavaScript

Aby zademonstrować użycie Gettera i Settera, po pierwsze, stworzymy „Pracownik„Klasa posiadająca„nazwa" nieruchomość:

classemployee
konstruktor (nazwa)
Ten.setName (nazwa);

W następnym kroku zdefiniujemy „getName ()„Metoda, która zwróci wartość pracownika”nazwa" nieruchomość:

getName ()
powrót.nazwa;

Inną metodą, którą zamierzamy dodać, jest „setName ()". Metoda setName () naszej klasy pracowników ma „nowe imie”Parametr. Ta metoda usunie wszelkie białe listy z wartości „nowe imie" I rzuci również wyjątek, jeśli nie wprowadziłeś żadnej nazwy:

setName (newName)
newName = newName.przycinać();
if (newName === ")
rzuć nazwę pracownika ”;

Ten.name = newName;

Jak nazywaliśmy nasze „setName ()„Metoda w konstruktorze, więc ilekroć utworzymy„Pracownik„Obiekt,„nazwa„Przekazano, ponieważ argument zostanie przejęty metodą setName (). Następnie konstruktor przeniesie przepływ sterowania do metody setName () i ustawi wartości przekazane argument jako „Pracownik„Nazwa obiektu:

Niech pracownik = nowy pracownik („Jack Smith”);
konsola.log (pracownik);

Możesz także wywołać utworzone „setName ()" I "getName ()„Metody w następujący sposób:

pracownik.SetName („William Smith”);
konsola.Log (pracownik.getName ());

Powyższe wiersze kodu ustawią się „William Smith”Jako nazwa„pracownik" obiekt. A później "getName ()„Metoda poinformuje Cię o wartości właściwości nazwy pracownika:

W dostarczonym przykładzie metoda setName () i getName () działają jako getter i setter .

Przykład 2: Getters and Setters w klasie JavaScript

W celu definiowania zdobywców i setterów w klasie JavaScript, ES6 oferuje również określoną składnię. Aby pokazać, jak to użyć, przejdziemy do naszej klasy pracowników:

classemployee
konstruktor (nazwa)
Ten.Nazwa = nazwa;

Następnie zdefiniujemy metodę Getter, wykorzystując słowo kluczowe ”Dostawać„Po następnej nazwie metody. Kolejną rzeczą, o której chcielibyśmy tutaj wspomnieć, jest to, że „nazwa„Własność naszego„Pracownik„Klasa będzie się zmienić na„_nazwa„Aby uniknąć konfliktu z Getter i Setter:

getName ()
powrót._nazwa;

Aby zdefiniować metodę settera, musisz dodać „seter”Słowo kluczowe przed określeniem nazwy metody:

Ustaw nazwę (newName)
newName = newName.przycinać();
if (newName === ")
Rzuć „uprzejmie wprowadź nazwę pracownika”;

Ten._name = newName;

Kiedy przypiszesz dowolną wartość do „nazwa„Własność twojego„Pracownik„Obiekt klasy, JavaScript wywoła metodę settera”nazwa()”:

pracownik.name = „Paul Max”;

Następnie wywołamy metodę OUT Getter przy użyciu poniżej podanej składni:

Niech empname = pracownik.nazwa;

Teraz, gdy interpreter JavaScript wykona powyższe wiersze, sprawdzi, że istnieje „nazwa„Własność w„Pracownik" klasa. Będzie dalej szukał dowolnej metody, która wiąże „nazwa„Nieruchomość, jeśli nie zostanie znaleziona. W naszym przypadku interpreter uzyska dostęp do metody Getter, a po jej wykonaniu zwróci wartość „nazwa" nieruchomość:

W przypadku, gdy nie zdefiniowałeś metody settera w swojej klasie JavaScript, otrzymasz typeerror, który określa, że ​​nie możesz ustawić właściwości „nazwaPracownik„Obiekt, jako„Pracownik„Klasa ma tylko funkcję gettera:

Pracownik klasy
konstruktor (nazwa)
Ten.Nazwa = nazwa;

Pobierz nazwę ()
powrót._nazwa;

// Brak metody settera

niech pracownik = nowy pracownik („Stephen Edward”);
konsola.Log (pracownik.nazwa);

Tutaj postaramy się zmienić nazwę naszego „pracownik" obiekt; Jednak w naszej klasie nie dodaliśmy żadnej metody settera:

pracownik.nazwa = „Paul Smith”;
konsola.Log (pracownik.nazwa);

Jak widać, napotkaliśmy błąd typu podczas próby ustawienia wartości właściwości nazwy:

Wniosek

Za pomocą słów kluczowych GET i SET możesz łatwo zdefiniować metody Getter i Setter w klasie JavaScript. Metoda Getter zwraca wartość właściwości, podczas gdy w metodzie setter argument jest przekazywany do metody setter, która przypisuje tę konkretną wartość właściwości obiektu klasy JavaScript. W tym spisie omówiono zdobyte i setery w JavaScript. Ponadto pokazaliśmy również przykłady związane z definicją i setter i używaniem w klasie JavaScript.