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.

Bursztyn
źródło
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.

issa marie tseng
źródło
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