Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 1.09.2011 Ostrzeżenie: (0%)
|
Witam, próbuję załapać domknięcia w JS, o to problemik
Program który będzie wywoływany foo(); będzie "zliczał" ilość wywołań bez użycia zmiennej globalnej ani argumentu w funckji więc jeśli wywołamy go foo(); foo(); alert(foo()); to da nam 3 i naskrobałem coś takiego Kod var increment = function() { var i = 0; return function() { return i += 1;}(); }; alert(increment()+" "+increment()); (tak wiem, że to się zeruję) Póki co stoję poetycko to ujmując "jak widływ gnoju". Wszelkie sugestie mile widziane |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%)
|
Podstawą działania takich funkcji jest sposób ustalania początkowej wartości zmiennej (opiszę to dokładniej w kodzie poniżej). Po drugie nie rozumiem, co chcesz osiągnąć zwracając w swojej funkcji wynik działania jakiejś funkcji anonimowej, to raczej nie tędy droga. Problem z domknięciami ma niewiele wspólnego, chodzi tutaj raczej o zasymulowanie zmiennej statycznej w JS.
@wszerad Nie chodzi o to, że taki zapis funkcję wyzwala, ale chodzi o to, że wewnątrz ciała tej funkcji mamy ograniczony zasięg zmiennych tylko do ciała tej funkcji. Powoduje to, że możemy bezpieczniej używać zmiennych do niej przekazanych. Takie coś do poczytania, choć to niewiele, jeśli chodzi o domknięcia. Ten post edytował mortus 1.09.2011, 22:00:33 |
|
|
|
mesmerro JS Domknięcia i samo zwiększająca się funkcja. 1.09.2011, 20:54:44
wszerad [PHP] pobierz, plaintext var i = 0;(function... 1.09.2011, 21:46:50
mesmerro wielkie dzięki, zmylono mnie gdyż powiedziano mi i... 1.09.2011, 22:13:32
wszerad "Nie chodzi o to, że taki zapis funkcję wyzwa... 1.09.2011, 22:24:09
mesmerro a takie jeszcze pytanie do wywołania funkcji
func... 1.09.2011, 22:40:23
wszerad Musisz taką funkcje brać w nawias, deklaracja obie... 1.09.2011, 23:19:01 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 06:43 |