JavaScript jest zorientowany obiektowo - Charakterystyka obiektowa

Spisie treści:

Anonim

Wprowadzenie do JavaScript

JavaScript również skraca, ponieważ JS jest interpretowanym językiem programowania wysokiego poziomu. JavaScript jest jedną z trzech głównych technologii sieci WWW. JavaScript umożliwia tworzenie interaktywnych stron internetowych innych niż statyczne strony internetowe. Większość stron internetowych używa JS do programowania, a główne przeglądarki internetowe mają silnik JavaScript do jego wykonania. JavaScript jest lekkim, słabo wpisanym, prototypowym interpretowanym językiem programowania z funkcjami obiektowymi. JavaScript jest używany do tworzenia aplikacji internetowych po stronie klienta, jest zawarty w pliku HTML lub do którego się odwołuje, dzięki czemu kod jest renderowany w przeglądarce. Obecnie JavaScript jest używany nie tylko do programowania po stronie klienta, ale także do programowania po stronie serwera, dostępne są różne frameworki, które są budowane przy użyciu JavaScript, np. Node.js. Node.js ma wiele modułów do programowania mikrousług, interfejsów API i połączeń z bazą danych. Mechanizm JavaScript po stronie klienta zapewnia wiele korzyści w stosunku do tradycyjnych skryptów CGI. JavaScript może być wykorzystywany do działania w oparciu o zdarzenia inicjowane przez użytkownika, takie jak klikanie przycisków, nawigacje, wyskakujące komunikaty itp. Jest także używany do sprawdzania poprawności po stronie klienta. na przykład możesz zweryfikować pola takie jak adres e-mail, hasło itp. w formularzu przed przesłaniem go do serwera WWW.

Czy JavaScript jest językiem obiektowym?

Temat, czy JavaScript jest czystym językiem obiektowym, czy nie, jest zawsze dyskusyjny. Teraz wyjaśnimy, że JavaScript jest zorientowany obiektowo, ponieważ niektórzy twierdzą, że nie jest on zorientowany obiektowo, ponieważ nie ma żadnych klas i nie może wdrożyć koncepcji OOP, takich jak dziedziczenie lub enkapsulacja, a niektórzy twierdzą, że jest to język zorientowany obiektowo. Przed omówieniem tego JavaScriptowego tematu obiektowego należy zrozumieć, że co czyni język programowania językiem programowania obiektowego?

Istnieje kilka ważnych cech języków zorientowanych obiektowo:

  • Wielopostaciowość:

Zdolność obiektu do przyjmowania wielu form. Na przykład funkcja może być przeciążona tą samą nazwą, ale różnymi parametrami.

  • Kapsułkowanie:

Powiązanie wszystkich danych i operacji razem i utrzymanie ich w klasie.

  • Dziedzictwo:

Klasa podrzędna może być wyprowadzona z klasy nadrzędnej ze wszystkimi funkcjami z klasy nadrzędnej i pewnymi własnymi właściwościami.

Te wyżej wymienione trzy zasady stanowią podstawę języka zorientowanego obiektowo.

Tak więc JavaScript może nie być zgodny z dokładnym paradygmatem Zorientowanych obiektowo zasad, ale JavaScript ma różne sposoby implementacji OOP. Możemy zademonstrować, w jaki sposób JavaScript postępuje zgodnie z Zorientowanymi obiektowo zasadami, biorąc kilka przykładów:

Kapsułkowanie:

Idea enkapsulacji polega na tym, że dane obiektu nie powinny być dostępne bezpośrednio, zamiast tego należy uzyskać dostęp za pomocą niektórych metod. Ale w JavaScript nie ma pojęcia o klasie i obiektach, które implementują enkapsulację na dwa sposoby, tj. Zakres funkcji i zamknięcie

1) Zakres funkcji:

To nic innego jak zadeklarowanie zmiennych wewnątrz funkcji. Zatem zakres zmiennych będzie ograniczony tylko do funkcji, a inne obiekty nie będą miały dostępu do zmiennych. Weźmy przykład, aby zademonstrować zakres funkcji.

test działania ()
(
var value = „Hello!”;
alert (wartość) // „Witaj!”;
)
alert (wartość) // błąd; wartość nie jest dostępna poza funkcją.

2) Zamknięcia:

Zamknięcie jest wewnętrznym zakresem, który ma dostęp do zmiennych zadeklarowanych poza swoim blokiem, nawet po tym, jak zmienne te wypadły poza zakres. Chociaż metody obiektu nie mogą uzyskać dostępu do innych zmiennych lokalnych, obiekt wewnętrzny ma dostęp do zmiennych swojej funkcji nadrzędnej. Weźmy przykład, aby to zrozumieć.

var person = (
var name = “JavaScript”;
return (
setName : function(value)(
name = value;
),
getName : function()(
return name;
)
);
);
alert(person.name) //JavaScript
person.setName(“Java”)
alert(person.name) //Java

W ten sposób możemy zadeklarować wewnętrzne obiekty lub metody ukrywania danych, do których można uzyskać dostęp za pomocą obiektów nadrzędnych.

Dziedzictwo:

JavaScript obsługuje dziedziczenie dzięki koncepcji o nazwie Dziedziczenie Prototypowe pozwala obiektowi JavaScript na uzyskanie wszystkich lub niektórych funkcji od innych obiektów lub obiektów nadrzędnych.

1) Prototyp:

JavaScript jest opisany jako język oparty na prototypach, aby zapewnić obiekt dziedziczenia, może mieć obiekt prototypowy, który dziedziczy metody i właściwości z innych obiektów. Obiektowy obiekt prototypowy może również posiadać obiekt prototypowy, który dziedziczy metody i właściwości po swoim obiekcie nadrzędnym i tak dalej, nazywa się to łańcuchem prototypowym.

Powyższy obrazek pokazuje wszystkie właściwości tworzonego obiektu „zwierzę”. Tak więc „nazwa” i „typ” są właściwościami obiektu „zwierzę”, a właściwości takie jak valueOf, toString, toLocaleString itp. Są właściwościami obiektu nadrzędnego dziedziczonego do obiektu zwierzęcego. Zapoznaj się z poniższym obrazem pokazującym właściwości obiektu nadrzędnego za pomocą proto właściwości.

Wielopostaciowość:

Poli oznacza „wiele”, morfizm oznacza „formy”, polimorfizm to nic innego jak przyjmowanie różnych form. W JavaScript polimorfizm osiąga się przez ogólne, przeciążające, strukturalne podtypy.

1) Generyczne (polimorfizm parametryczny):

To mówi, że typ zmiennej w ogóle nie ma znaczenia, są one wymienne. Funkcja, która definiuje jeden lub więcej parametrów parametrycznego typu polimorficznego, nie może nic wiedzieć o typach, powinna traktować je wszystkie tak samo, ponieważ może dostosować się do dowolnego z tych typów. Zobacz przykład poniżej

const data = x => y => y.concat (x);

dane (3) ((1, 2)); // (1, 2, 3)

dane („c”) ((„a”, „b”)); // („a”, „b”, „c”)

2) Przeciążenie (polimorfizm ad-hoc):

Przeciążenie w JavaScript jest osiągane przy użyciu polimorfizmu as-hoc. Polimorfizm ad-hoc jest rodzajem polimorfizmu, w którym funkcje polimorficzne można zastosować do argumentów kilku typów, ponieważ funkcje polimorficzne mogą oznaczać liczbę różnych heterogenicznych implementacji w zależności od typów argumentów. Zobacz niżej wymieniony przykład

Operator „+” jest używany na kilka sposobów, takich jak dodawanie liczb, łączenie łańcuchów itp.

1 + 2 = 3

1, 2 + 2, 3 = 3, 5

„Java” + ”Script” = „JavaScript”

3) Podtyp strukturalny (polimorfizm strukturalny):

Polimorfizm strukturalny mówi, że różne typy są równoważne, na przykład jeśli jeden typ ma wszystkie właściwości drugiego typu wraz z pewnymi dodatkowymi właściwościami (zgodnie z tą samą strukturą)

Stała waga = (wartość: 100, dane: prawda)

Stała prędkość = (wartość: 200, dane: fałsz, foo: (1, 2, 3))

Prędkość jest uważana za podtyp wagi.

Wniosek - czy obiekt JavaScript jest zorientowany obiektowo?

Podczas gdy dyskutowaliśmy o JavaScript Object Oriented, możemy teraz stwierdzić, że JavaScript jest językiem obiektowym. Chociaż nie ma żadnych prawdziwych klas, wciąż jest językiem zorientowanym obiektowo, ponieważ podąża za podstawowymi pojęciami zorientowanymi obiektowo. Tak więc język może być zorientowany obiektowo, jeśli obsługuje obiekty nawet bez klas.

Polecane artykuły

Jest to przewodnik po obiektach zorientowanych JavaScript. Omówiliśmy tutaj podstawowe pojęcia i cechy JavaScript i Object-Oriented. Możesz także przejrzeć następujące artykuły:

  1. JavaScript vs VBScript
  2. Wykorzystuje JavaScript
  3. JavaScript vs AngularJS
  4. JavaScript vs Node JS
  5. Kompleksowy przewodnik po obiektach w Javie
  6. Obiekt w Pythonie
  7. Przykłady i jak działają generics w C #