Kiedy funkcja jest powiązana w JQuery, jaka jest kolejność operacji?W jaki sposób funkcje łańcuchowe są wykonywane w JQuery?
Przykład 1
$(selector).fun1(val,{fun2(){ }}
Przykład 2
$(selecter).fun1().fun2().fun3()
Kiedy funkcja jest powiązana w JQuery, jaka jest kolejność operacji?W jaki sposób funkcje łańcuchowe są wykonywane w JQuery?
Przykład 1
$(selector).fun1(val,{fun2(){ }}
Przykład 2
$(selecter).fun1().fun2().fun3()
od lewej do prawej. fun3()
jest uruchamiany z wynikiem (= wartość zwracana) z fun2()
, fun2()
na tym z fun1()
.
Ten rodzaj łączenia można wykonać w JQuery, ponieważ każda funkcja łańcuchowa zwraca obiekt/element, do którego został wywołany.
Po wykonaniu $(selector).fun1()
zwraca element $(selector)
. fun2()
jest wywoływana z tego zwróconego elementu i tak dalej.
Dziękuję przyjacielu! Twoja odpowiedź jest dla mnie bardzo przydatna. –
W tym przykładzie.
$(selector).fun1(val,{fun2(){ }}
Drugi parametr funkcjonować jeden jest callback function. Oznacza to, że wykonuje się fun1
wykonywanie.
W tym przykładzie:
$(selecter).fun1().fun2().fun3()
Wszystkie funkcje są wystrzelone jak najszybciej, jeśli mają czas, jak mówią animację. W przeciwnym razie są one wykonywane w kolejności fun1
, fun2
, fun3
.
Tak więc z animacjami, fun1
, fun2
i fun3
będzie 3 jednoczesne nachodzące na siebie animacje, ale z innymi operacjami synchronicznymi, po prostu występują w kolejności.
'Tak więc animacje, fun1, fun2 i fun3 byłyby 3 jednoczesnymi nakładającymi się animacjami" - Myślę, że nieco zawyżasz tę część. W przypadku animacji rzeczywiste funkcje nadal są uruchamiane w kolejności, ale same tworzą interwały z funkcjami wywołania zwrotnego. Ponieważ JS jest pojedynczym wątkiem, funkcje nie mogą działać asynchronicznie. Zegary oddzielają się od głównego wątku, ale ich funkcje wywołania zwrotnego są uruchamiane w głównym wątku, gdy staje się on bezczynny. –
@Andy - To prawda, miałem na myśli * efekt * jest jednoczesny i nakładający się :) –
Dziękuję przyjacielu! Byłem bardzo zdezorientowany wcześniej, ale teraz moje pomyłki zostały usunięte. Jeszcze raz dziękuję! –
Dobra informacja, która bardzo mi pomogła. – Adamantus