Co to jest funkcja .apply jQuery?


Odpowiedzi:


126

applywywołuje funkcję z zestawem argumentów. To nie jest część jQuery, jest częścią rdzenia JavaScript. Jednak jest o tym mowa w dokumentacji jQuery:

http://docs.jquery.com/Types#Context.2C_Call_and_Apply

Składnia:

somefunction.apply(thisObj, [argsArray])

Powyższe wywołuje funkcję somefunction, ustawiając thisthisObjw zakresie funkcji i przekazując argumenty z argsArrayjako argumenty do funkcji.


2
Powiązana jest funkcja [ .call () ] ( mdn.beonex.com/en/Core_JavaScript_1.5_Reference/Global_Objects/… ), która również przyjmuje a this, ale po niej następuje seria indywidualnie wymienionych argumentów zamiast tablicy zawierającej argumenty .
Peter Ajtai

co zrobi poniżej? $ .when.apply (null, object) .done (callback);
Gohel Kiran

@ user1531437 który wywołuje $.when(object).done(callback);, ale w funkcji $.when, thisjest ustawiony do pierwszego parametru, tj null. Prawdopodobnie należy go użyć, $.when.call(null, object).done(callback);ponieważ drugim parametrem .applyma być tablica
Luke Madhanga

Spokrewniony był funkcja proxy jQuery , który jest przydatny do zmiany wartości thistj zmienna kontekst, sposób Javascript w natywnej applymoże zrobić
Red Pea

5

Zasadniczo zastosuj wywoła funkcję z kontekstem ustawionym na obiekt, do którego zastosujesz funkcję. Oznacza to, że w ramach funkcji odwołanie thisbędzie odnosić się do tego obiektu.


Każdy, kto pracuje z jQuery i dociera do tej odpowiedzi, będzie musiał użyć, $(this)aby uzyskać powiązany obiekt jQuery i mieć dostęp do metod jQuery.
R. Schreurs

@ R.Schreurs również musisz użyć obiektu jQuery.fn, jak widać tutaj: stackoverflow.com/a/27374435/674033
AVProgrammer
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.