Zakapulowanie w JavaScript | Wyjaśnione

Zakapulowanie w JavaScript | Wyjaśnione
JavaScript to potężny język zorientowany na obiekty, który można wykorzystać do opracowywania złożonych aplikacji. Wraz ze wzrostem złożoności implementacji potrzeba utrzymania kodu jest zmaksymalizowana. "Kapsułkowanie”Jest jedną z godnych pochwały zasad Programowanie obiektowe(Oop) To pomaga w tym względzie.

Za pomocą enkapsulacji możesz łatwo wiązać dane lub pojedyncza jednostka do metod wykonujących niektóre operacje. Pozwala również na weryfikację i kontrolowanie przepływu danych w aplikacji JavaScript.

Ten zapis wyjaśni enkapsulację w JavaScript za pomocą odpowiednich przykładów. A więc zacznijmy!

Enkapsulacja w JavaScript

Kapsułkowanie w JavaScript jest metodologią stosowaną dla Ukrywanie informacji. Opiera się na koncepcji, że właściwości obiektu nie powinny być publicznie narażone na świat zewnętrzny. Wdrażanie enkapsulacji w JavaScript zapobiega dostępowi do zmiennych poprzez dodanie jednostek publicznych wewnątrz obiektu, którego rozmówcy mogą użyć, aby osiągnąć określone wyniki.

Przykład: Wdrożenie enkapsulacji w JavaScript

Przede wszystkim utworzymy obiekt JavaScript o nazwie „student" mający "nazwa" nieruchomość:

var Student =
Nazwa: „Alexander”,
;

W następnym kroku wydrukujemy początkową wartość „nazwa" nieruchomość:

konsola.Log („Nazwa ucznia to:”+ Student.nazwa);

Następnie zmodyfikujemy „student.nazwa„Wartość nieruchomości i ponownie użyj„konsola.dziennik()„Metoda wyświetlania go w konsoli:

student.name = "max";
konsola.Log („Nazwa ucznia to:”+ Student.nazwa);
student.name = "Paul";
konsola.Log („Nazwa ucznia to:”+ Student.nazwa);

Wyjście

Jak widać, wszystko działa idealnie zgodnie z dodatkową logiką. Problem pojawi się jednak, gdy użytkownik wprowadzi wartość całkowitą dla „student.nazwa" nieruchomość.

Przykład: Sprawdzanie poprawności danych za pomocą metod enkapsulacji w JavaScript

Zmienna JavaScript może pomieścić wartość dowolnego typu danych, aby rozwiązać wspomniany problem, musimy ograniczyć zakres znaków prawnych dla „nazwa" wartość nieruchomości. W tym celu wykorzystamy Wyrażenie regularne "/\ d+/„To sprawdzi”jedno lub więcej wystąpień znaków cyfrowych (0-9)". To wyrażenie do regularności zostanie dodane do nowej metody settera „”setName”, Który wykonuje dalsze testy:

var Student =
Nazwa: „Alexander”,
setName: funkcja (wartość)
var ekspresja = new Regexp (/\ d+/);
if (wyrażenie.test (wartość))
konsola.log („Wpisana jest nieprawidłowa nazwa”);

w przeciwnym razie
Ten.Nazwa = wartość;

Następnie dodamy metodę Getter „GetName„Aby odzyskać„student.nazwa" wartość nieruchomości:

getName: function ()
Zwróć to.nazwa;

;
konsola.Log (uczeń.getName ());
student.setName („max”);
konsola.Log (uczeń.getName ());
student.setName (34);
konsola.Log (uczeń.getName ());

Teraz, jeśli stwierdzenie „wyrażenie.test (wartość)”Ocena„ być ”PRAWDA,”Następnie w oknie konsoli wyświetl się wiadomość, stwierdzając, że„Wpisana jest nieprawidłowa nazwa", w przeciwnym razie "wartość„Przekazane jako argument zostanie przypisany do„nazwa" nieruchomość:

Z powodzeniem przeprowadziliśmy sprawdzanie poprawności przy użyciu wyrażenia wyrażenia wyrażenia wyrażenia w metodzie settera, ale nasz program nie jest w pełni zamknięty. To dlatego, że „nazwa„Własność jest deklarowana na całym świecie, co pozwala dzwoniącemu uzyskać dostęp i modyfikację jego wartości:

student.Nazwa = 34;
konsola.Log (uczeń.getName ());

Powyższe dane wyjściowe pokazuje, że kiedy bezpośrednio uzyskaliśmy dostęp do „nazwa„Własność„ „student”Obiekt, walidacja nie zdarza się i„34”Jest ustawiony jako wartość właściwości. To działanie dowodzi, że jeśli właściwość obiektu jest dostępna na całym świecie, można ją łatwo uzyskać, co ryzykuje bezpieczeństwo danych.

Enkapsulacja w JavaScript za pomocą zakresu funkcji

Zamiast odsłaniać właściwości obiektu; Musimy go ukryć z zewnątrz. Aby to zrobić, możesz użyć „var”Słowo kluczowe w celu zdefiniowania właściwości prywatnej i zamknięcia jej w zakresie funkcji.

Przykład: enkapsulacja w JavaScript za pomocą zakresu funkcji

W następującym "newFunc () ” Definicja, „X”To zmienna prywatna, do której można uzyskać dostęp w ciele funkcji:

funkcja newFunc ()

var x = "Linuxhint.com ";
konsola.log (x);

konsola.log (x);

Wykonanie dostarczonego kodu pokazuje błąd, ponieważ „X”Jest zdefiniowane w„newFunc ()”I uzyskujemy do niego dostęp pod względem globalnego zakresu:

Podobnie dodanie „nazwa”Jako zmienna prywatna w„seter„Metoda ograniczy jej bezpośredni dostęp. W tym scenariuszu „nazwa„Zmiennej nie można wykorzystać poza”seter„Zakres metody, co oznacza, że„rębacz„Metoda też nie może do niego uzyskać dostępu.

Za pomocą "Domknięcia”To najprostszy i najbardziej elegancki sposób na wdrożenie enkapsulacji w JavaScript.

Enkapsulacja w JavaScript za pomocą zamknięć

Wewnątrz funkcji nadrzędnej „”Domknięcia”Pozwól funkcji na wykorzystanie zmiennej lokalnej innej funkcji.

Na przykład mamy zmienną prywatną ”nazwa„Do obu metod można uzyskać dostęp”GetName" I "setName”W zakresie funkcji. W rezultacie za każdym razem, gdy wywoływana jest funkcja anonimowa, musi zwrócić obiekt wewnętrzny i przypisać go do zmiennej zewnętrznej.

Przykład: enkapsulacja w JavaScript za pomocą zamknięć

W tym przykładzie, kiedy wywołujemy „setName ()" I "getName ()”Funkcje, działanie to generuje nowy zakres zamknięcia wywoływania. Zakres jest następnie zachowywany przez zwrócenie wskaźnika do „student" obiekt:

var student = function ()
var name = "Alexander";
var ekspresja = new Regexp (/\ d+/);
powrót
setName: funkcja (wartość)
if (wyrażenie.test (wartość))
konsola.log („Wpisana jest nieprawidłowa nazwa”);

w przeciwnym razie
Nazwa = wartość;

,
getName: function ()
Nazwa powrotu;

;
();

Podana funkcja kończąca się „()”Wskazuje, że wywołujemy funkcję i przypisujemy zwróconą wartość do„student" zmienny:

konsola.Log (uczeń.getName ());
student.setName („max”);
konsola.Log (uczeń.getName ());
student.setName (76);
student.Nazwa = 76;
konsola.Log (uczeń.getName ());

W takim przypadku enkapsulacja jest w pełni zaimplementowana za pomocą Domknięcia, A dzwoniący nie mogą bezpośrednio uzyskać dostępu do zmiennej prywatnej:

Chodziło o podstawowe informacje związane z Kapsułkowanie W JavaScript; Możesz go dalej zbadać zgodnie z naszymi wymaganiami.

Wniosek

Za pomocą Rozpadki funkcji I Domknięcia, Kapsułkowanie W JavaScript można łatwo wdrożyć. Za pomocą enkapsulacji możesz powiązać dane lub pojedynczą jednostkę z metodami, które wykonują niektóre operacje. Pozwala również na weryfikację i kontrolowanie przepływu danych w aplikacji JavaScript. Ten zapis wyjaśnił enkapsulacja w JavaScript wraz z odpowiednimi przykładami.