Statyczne wiązanie dynamiczne w JavaScript

Statyczne wiązanie dynamiczne w JavaScript

W JavaScript, wiązanie to proces łączenia prawidłowej definicji funkcji z wywołaniem funkcji lub powiązaniem wartości z zmienną. Adres pamięci jest przypisywany do każdej definicji funkcji w fazie kompilacji. Po wywołaniu konkretnej funkcji, wykonanie programu przesuwa kontrolę na ten określony adres pamięci i pobiera kod funkcji przechowywany w wykonanej lokalizacji. Ten mechanizm jest znany jako wiążący.

Wiązanie w JavaScript jest podzielone na dwa typy: „Wiązanie statyczne” i „wiązanie dynamiczne”. Jeśli wszystkie wymagane informacje związane z wywołaniami funkcji i przypisaniem zmiennych są już znane w czas kompilacji, nazywa się to wiązaniem statycznym. W drugim przypadku wiązanie dynamiczne występuje, gdy wymagane informacje są uznane czas wykonywania.

Ten zapis wyjaśni Wiązanie statyczne i wiązanie dynamiczne w JavaScript za pomocą odpowiednich przykładów. A więc zacznijmy!

Wiązanie statyczne w JavaScript

JavaScript „Wiązanie statyczne”Występuje, gdy kompilator rozpoznaje wszystkie wymagane informacje związane z przypisaniem wartości do zmiennych lub wywołując funkcję, w fazie kompilacji. Jest również znany jako „Wiązanie czasu kompilacji” lub „wczesne wiązanie”.

Technika statycznego wiązania JavaScript jest zaimplementowana podczas procesu kodowania, dzięki czemu program jest bardziej wydajny ponieważ wszystkie wartości zmienne i wywołania funkcji są predefiniowane w tego rodzaju wiązaniu. Wpływa to jednak również na elastyczność kodu.

Niektóre przykłady statycznej procedury wiązania to: „Przeciążenie operatora” i „Przeciążenie funkcji”.

Teraz sprawdźmy, jak działa statyczne wiązanie za przeciążeniem operatora i przeciążenie funkcji w JavaScript.

Przeciążenie operatora za pomocą wiązania statycznego w JavaScript

JavaScript pozwala nam na nowo zdefiniować, jak działają operatorzy dla różnych typów zdefiniowanych przez użytkownika, takich jak struktury i obiekty. Ta funkcjonalność jest znana jako Przeciążenie operatora.

Przykład: Przeciążenie operatora z wiązaniem statycznym w JavaScript

Ponieważ przeciążenie operatora zapewnia funkcjonalność zmiany zachowania określonego operatora w czasie kompilacji, użyjemy tej funkcji do naczeni do definiowania zachowania operatora „+”:

Na przykład możesz skorzystać „+” operator, aby dodać dwie liczby:

3 + 6

Lub połączenie strun:

„Linux” + ” +„ wskazówka ”

Lub połączenie liczb z strunami:

1 + „Artykuł”

Wyjście

W czasie kompilacji operator „+” jest przeciążony na podstawie rodzaju używanych danych. Na przykład, „3” + „6” utworzył nowy numer „9”, podczas gdy „1” + „artykuł” wygenerował ciąg „1 artykuł”. W ten sposób zaimplementowaliśmy przeciążenie operatora za pomocą statycznego wiązania.

Przeciążenie funkcji za pomocą statycznego wiązania w JavaScript

Przeciążenie funkcji to kolejny przykład wiązania statycznego, w którym wiele funkcji jest zdefiniowanych za pomocą Ta sama nazwa mającą różne parametry. Wywołanie funkcji wiąże się z prawidłową funkcją na podstawie przekazanych argumentów w czasie kompilacji.

Przykład 1: Przeciążenie funkcji z wiązaniem statycznym w JavaScript

W Przeciążenie funkcji, Dodane metody mogą mieć tę samą nazwę, ale aby je przeciążyć, musisz przekazać różne argumenty, odpowiednio zmieniając wyniki.

Na przykład utworzyliśmy dwie funkcje o tej samej nazwie. Pierwszy "pokazywać()”Funkcja przyjmuje dwa argumenty, „X” i „Y”, i zwraca ich sumę:

funkcja show (x, y)
zwrócić x+y;

Drugi "pokazywać()„Funkcja zaakceptuje i zwróci przekazane”z" argument:

funkcja show (z)
powrót z;

Teraz, kiedy mijamy „3” i „5” wartości jako argumenty, Funkcja „show (3,5)” wywołanie wiąże się z pierwszą funkcją show (), która akceptuje, ma dwa parametry, podczas gdy po określaniu jednego argumentu, Funkcja „show (2)” wywołanie będzie powiązane z drugą funkcją show ():

pokaz (3,5);

Wyjście

pokaz (2);

Wyjście

W powyższym przykładzie obaj dodali „pokazywać()”Funkcje są związane statystycznie w czasie kompilacji. W rezultacie nie zostanie zmarnowany czas na określenie funkcji wywołania, co skutkuje szybkie i wydajne wykonywanie programu.

Teraz pójdziemy naprzód i omówimy dynamiczne wiązanie w JavaScript.

Dynamiczne wiązanie w JavaScript

„Dynamiczne wiązanie” w JavaScript to proces przypisywania wartości do zmiennej lub wywoływania funkcji w czasie wykonywania. Jest również znany jako „Wiązanie czasowe” lub „późne wiązanie” Ponieważ wiązanie wywołań funkcji z prawidłową funkcją lub przypisaniem wartości do odpowiednich zmiennych jest opóźnione do czasu czasu wykonania.

Dynamiczne wiązanie umożliwia program programu elastyczny umożliwiając użytkownikom wybór funkcji, jaką należy wywołać i jaką wartość przypisać do zmiennej w czasie wykonywania. Jednakże to spowalnia wykonanie, Ponieważ wszystkie określone informacje są dostarczane w czasie wykonywania.

"Metoda zastępująca”Jest doskonałym przykładem wykorzystania dynamicznego wiązania w JavaScript.

Metoda zastępująca dynamiczne wiązanie w JavaScript

W JavaScript, zastępowanie metody jest mechanizmem, który pozwala klasie dzieci na wdrożenie metody klasy nadrzędnej w inny sposób. W ten sposób klasa dzieci zastępuje metodę klasy nadrzędnej za pomocą wiązanie dynamiczne.

Przykład: Metoda zastępująca wiązaniem dynamicznym w JavaScript

W tym przykładzie zastąpimy „mówić()„Metoda„Ptaki”(Rodzic) klasa. W tym celu zdefiniujemy dwa „mówić()„Metody, najpierw w„Sowa”Klasa i druga w„Gołąb„Klasa, a następnie wywołuje„mówić()„Metoda obu tych zajęć dla dzieci:

Ptaki klasowe
mówić()
konsola.Log („ptaki mają różne dźwięki”);


Sowa klasy rozszerza ptaki
mówić()
konsola.log („sowa mówi z kaseeeee”);


Klasa gołębi rozszerza ptaki
mówić()
konsola.Log („gołąb mówi, że COO COO”);


const sowa = new Owl ();
const gigeon = nowy gołębi ();
sowa.mówić();
Gołąb.mówić();

Można to zobaczyć z poniższego wyjścia Metoda klaski ptaków jest zastąpiony przez swoje klasy dzieci ze względu na dynamiczne wiązanie:

To wszystko Statyczne wiązanie dynamiczne w JavaScript. Możesz dalej zbadać ten temat zgodnie z Twoimi wymaganiami.

Wniosek

Wiązanie statyczne w JavaScript występuje, gdy kompilator rozpoznaje wszystkie wymagane informacje związane z przypisaniem wartości zmiennych lub wywołując funkcję w fazie kompilacji, podczas gdy Wiązanie dynamiczne przypisuje wartość do zmiennej lub wywołuje wartość wywołującą funkcję w czasie wykonywania. Przeciążenie funkcji i przeciążenie operatora opierają się na Wiązanie statyczne i zastępowanie metody jest uważany za przykład dynamicznego wiązania. W tym zapisie omówiono statyczne wiązanie i dynamiczne wiązanie w JavaScript za pomocą odpowiednich przykładów.