Jestem nieco zdezorientowany, w jaki sposób funkcje działają w javascript. Rozumiem, że wszystkie są przedmiotami, ale jak to zmienia, w jaki sposób użyłbym ich jako argumentów?Kiedy zadeklarować nową (anonimową) funkcję w javascript?
Na przykład, jeśli próbuję użyć funkcji oddzwaniania gdzie 2nd argumentem jest oceniany po 1000ms ...
$(this).fadeIn(1000,function(){alert('done fading in');});
Dlaczego nie mogę osiągnąć ten sam efekt z:
$(this).fadeIn(1000,alert('done fading in'));
Jeśli to zrobię, ocenia oba jednocześnie. Oznacza to, że element (ten) zaniknie i pojawi się alert w tym samym czasie.
Kiedy wywołuję alert (arg), czy nie tworzę nowy obiekt, który przechodzi w funkcję fadeIn()?
Jak dokładnie to działa?
dobre pytanie. Będę trzymać się tego jednego – OptimusCrime
Dla kujonów językowych: Technika, którą chcesz, nazywa się * [zastosowanie częściowe] [1] *, często nazywana też * Currying *. Skutecznie chcesz nową funkcję, w której niektóre argumenty są poprawione, a inne nie. [1]: http://en.wikipedia.org/wiki/Partial_application –
@nd: Nie, to nie jest to. W tym przykładzie nie ma currying ani częściowej oceny. Jeśli szukasz terminu, * funkcja anonimowa * to jest. Również * funkcje wyższego rzędu * dla funkcji, które przyjmują funkcje jako argumenty. – KaptajnKold