JavaScript i wiele innych języków programowania używają słowa kluczowego Ten przekazać odniesienie obiektu/klasy nadrzędnego do jego funkcji i metod w nich. Podczas gdy metody połączenia, wywołujące i zastosowania działają po przekazaniu odniesienia do atrybutów pożyczki z jednego obiektu do drugiego. Funkcja wiązania, połączenia i zastosowania została dodana w JavaScript w wydaniu ECMA2015.
Odniesienie „to”
Słowo kluczowe Ten ma bardzo specyficzne znaczenie w JavaScript, odnosi się do obiektu, który nazywa funkcję. Jeśli pracujemy z metodą konstruktora, to słowo kluczowe Ten odnoszą się do klasy i jej właściwości, jeśli pracujemy z niektórymi elementami DOM Ten Słowo kluczowe odnosi się do globalnych wartości DOM.
Aby to zademonstrować, utwórz następujący obiekt za pomocą następujących wierszy:
var person =Jak widać, wewnątrz osoby obiektowej mamy funkcję Nazwa wydruku które wydrukują nazwę osoby i wewnątrz konsola.dziennik() Widzimy, że mamy linię:
Ten.nazwa;Ten Słowo kluczowe tworzy odniesienie do obiektu i mówi kompilatorowi, aby pobierał „nazwę” z tego konkretnego obiektu.
Zadzwoń i zastosuj metody
Dzwonić I stosować Oba można zdefiniować jednocześnie, ponieważ mają prawie dokładnie tę samą mechanikę roboczą. Wywołanie i zastosowanie są używane do pożyczania funkcji, środków pożyczania funkcji, aby użyć funkcji innego obiektu i korzystanie z odniesienia innego obiektu.
Aby lepiej zrozumieć tę koncepcję, utwórz dwa różne obiekty za pomocą następujących wierszy kodu:
var person1 =Jak widać w fragmencie kodu, mamy prawie tę samą strukturę zarówno obiektów, jak i tych samych par kluczowych osoba 1 ma funkcję Nazwa wydruku chwila osoba 2 nie. Ale jeśli chcesz wydrukować „nazwę” osoba 2 obiekt, możesz to zrobić za pomocą metody „printName” z osoba 1 obiekt i dla „Ten„Odniesienie, przechodzisz w odniesieniu do obiektu osoba 2.
Składnia połączenia i Zastosuj:
Składnia obu tych metod jest prawie identyczna:
Dla metody połączenia składnia jest jako:
OBJ1.funkcjonować.Call (RecerenceOfObject2, Arg1 Arg2, Arg3…);Dla metody zastosowania składnia wynosi:
OBJ1.funkcjonować.Apply (RefeceFObject2, [arg1, arg2, arg3,…]);Notatka: Jeśli funkcja, którą pożyczasz, wymaga dodatkowych argumentów, to w Metoda wywołania przekazujesz argumenty oddzielone przecinkiem „”, aw przypadku metody zastosowania przekazujesz dodatkowe argumenty jako Lista tablic.
Korzystanie z metod połączeń i zastosowania
Wracając do naszego pierwotnego problemu, możemy użyć „Nazwa wydruku”Funkcja z„osoba 1„Obiekt do wydrukowania nazwy osoba 2 obiekt za pomocą następującego wiersza kodu:
osoba 1.Nazwa wydruku.Zadzwoń (osoba 2);Jeśli uruchomisz powyższe polecenie, zobaczysz następujące dane wyjściowe:
Podobnie możesz użyć stosować() metoda w tym samym celu przy użyciu kodu:
osoba 1.Nazwa wydruku.Zastosuj (osobowość2);Ale co jeśli Nazwa wydruku() Funkcja przyjmuje niektóre argumenty, takie jak:
PrintName: funkcja (miasto, rodzeństwo)W tym przypadku użyjesz funkcji wywołania z następującym wierszem kodu:
osoba 1.Nazwa wydruku.Zadzwoń (osoba 2, „New York”, 4);Kompletny fragment kodu jest jako:
var person1 =Jeśli wykonasz następujący kod, otrzymasz wyjście jako:
Jak widać, byłeś w stanie przekazać argumenty za pomocą metody wywołania, możesz to zrobić za pomocą stosować() Metoda również przy użyciu następującego fragmentu kodu:
var person1 =Notatka: do przekazywania argumentów do pożyczonej funkcji przez stosować() Metoda, używamy tablicy zawierającej argumenty.
Jeśli wykonasz ten kod, otrzymasz to samo identyczne dane wyjściowe jak:
Ale co, jeśli nie chcesz pożyczyć funkcji z jakiegoś obiektu? To tutaj Metoda wiązania wchodzi w grę.
Metoda BIND ()
w przeciwieństwie do dzwonić I stosować metody, wiązać Metody są używane do utworzenia kopii funkcji, a następnie umieszczenia tej kopiowanej funkcji jako atrybutu obiektu, aby funkcja mogła być używana w późniejszym czasie.
Składnia metody wiązania
Składnia jest jak:
var newFunctionName = Object1.funkcjonować.bind (referenceToObject2);Uwaga: Metoda powiązania zwraca replikowaną funkcję.
Aby to zademonstrować, zmieńmy kod z powyższego przykładu w ten sposób:
var person1 =Teraz, jeśli chcesz wykonać kopię funkcji printfullName z obiektu osoba 1 i uczyń go atrybutem obiektu osoba 2 Następnie możesz to zrobić za pomocą następującego wiersza kodu:
var printMyName = osobowość1.printfullName.wiązanie (osobowość2);Dzięki tej linii masz „Baked”Funkcja atrybutu PrintMyname z obiektem osoba 2, i możesz go wywołać za pomocą polecenia:
PrintMyName ()Uwaga: nie nazywasz tego z osoba 2 obiekt przy użyciu opery kropkowej, ponieważ odniesienie do osoba 2 Obiekt jest już „Baked”Do funkcji.
Kompletny fragment kodu jest jako:
var person1 =Po wykonaniu tego fragmentu kodu otrzymasz następujące dane wyjściowe:
Proszę bardzo, zduplikowałeś funkcję od osoba 1 obiekt, przekazał odniesienie osoba 2 obiekt i przechowywał go jako osobną funkcję.
Wniosek
Zadzwoń, wiązaj I stosować Metody są skomplikowanymi metodami, które są używane do odniesienia z odniesienia obiektów i pomagają osiągnąć wyczyny, takie jak pożyczanie funkcji i replikacja funkcji z innym odniesieniem. Aby zrozumieć szczegóły tych funkcji, musimy wiedzieć, jakie słowo kluczowe Ten oznacza w JavaScript i to, jak działa odniesienie w JS. Dowiedziałeś się o tym, aby działać, wywołać, stosować i wiązać wraz z ich przykładami.