Czytałem kilka postów na temat zamknięć i widziałem to wszędzie, ale nie ma jasnego wyjaśnienia, jak to działa - za każdym razem, gdy kazano mi go używać ...: // Create a new anonymous function, to use as a wrapper (function(){ // The variable that would, normally, be global var msg …
Podsumowanie Czy potrafisz wyjaśnić, co kryje się za składnią enkapsulowanych funkcji anonimowych w JavaScript? Dlaczego to działa: (function(){})();ale to nie function(){}();:? Co wiem W JavaScript tworzy się nazwaną funkcję taką jak ta: function twoPlusTwo(){ alert(2 + 2); } twoPlusTwo(); Możesz także utworzyć anonimową funkcję i przypisać ją do zmiennej: var …
Czy można mieć funkcję PHP zarówno rekurencyjną, jak i anonimową? To jest moja próba uruchomienia go, ale nie przechodzi w nazwie funkcji. $factorial = function( $n ) use ( $factorial ) { if( $n <= 1 ) return 1; return $factorial( $n - 1 ) * $n; }; print $factorial( …
Powiedzmy, że mam podstawową funkcję rekurencyjną: function recur(data) { data = data+1; var nothing = function() { recur(data); } nothing(); } Jak mogę to zrobić, jeśli mam anonimową funkcję, taką jak ... (function(data){ data = data+1; var nothing = function() { //Something here that calls the function? } nothing(); })(); …
Niedawno porównałem bieżącą wersję json2.js z wersją, którą miałem w swoim projekcie i zauważyłem różnicę w sposobie tworzenia i wykonywania wyrażenia funkcji. Kod używany do zawijania anonimowej funkcji w nawiasach, a następnie wykonywania jej, (function () { // code here })(); ale teraz zawija funkcję wykonywaną automatycznie w nawiasach. (function …
Mam obiekt, który zawiera metody. Te metody są umieszczane w obiekcie wewnątrz anonimowej funkcji. To wygląda tak: var t = {}; window.document.addEventListener("keydown", function(e) { t.scroll = function(x, y) { window.scrollBy(x, y); }; t.scrollTo = function(x, y) { window.scrollTo(x, y); }; }); (kodu jest dużo więcej, ale to wystarczy, aby pokazać …
Część odpowiedzi JSON witryny miała to (... dodane dla kontekstu): {..., now:function(){return(new Date).getTime()}, ...} Czy dodanie anonimowych funkcji do JSON jest prawidłowe? Spodziewałbym się, że za każdym razem, gdy uzyskasz dostęp do „czasu”, zwrócisz inną wartość.
Istnieją dwa różne sposoby wykonywania wyrażeń funkcyjnych w JavaScript: Nazwane wyrażenie funkcyjne (NFE) : var boo = function boo () { alert(1); }; Anonimowe wyrażenie funkcyjne : var boo = function () { alert(1); }; I oba z nich można wywołać za pomocą boo();. Naprawdę nie rozumiem, dlaczego / kiedy …
Byłem bardzo podekscytowany czytaniem o anonimowych funkcjach w php, które pozwalają zadeklarować zmienną, która jest funkcją łatwiejszą niż w przypadku create_function . Teraz zastanawiam się, czy mam funkcję, której przekazano zmienną, jak mogę to sprawdzić, aby określić, czy jest to funkcja? Nie ma jeszcze funkcji is_function (), a kiedy wykonuję …
function doSomethingWith(param) { document.body.addEventListener( 'scroll', function() { document.write(param); }, false ); // An event that I want to remove later } setTimeout( function() { document.body.removeEventListener('scroll', HANDLER ,false); // What HANDLER should I specify to remove the anonymous handler above? }, 3000 ); doSomethingWith('Test. ');
Podręcznik PHP stwierdza Nie można używać $thisfunkcji anonimowej przed PHP 5.4.0 na stronie funkcji anonimowych . Ale odkryłem, że mogę sprawić, by działało, przypisując $thisdo zmiennej i przekazując zmienną do useinstrukcji w definicji funkcji. $CI = $this; $callback = function () use ($CI) { $CI->public_method(); }; Czy to dobra praktyka? …
Jest coś, czego nie rozumiem w przypadku funkcji anonimowych używających krótkiej notacji # (..) Następujące prace: REPL> ((fn [s] s) "Eh") "Eh" Ale to nie jest: REPL> (#(%) "Eh") To działa: REPL> (#(str %) "Eh") "Eh" Nie rozumiem, dlaczego (# (%) "Eh") nie działa i jednocześnie nie muszę używać str …
Dlaczego w funkcji anonimowej jest to niezdefiniowane, gdy używasz javascript w trybie ścisłym? Rozumiem, dlaczego to może mieć sens, ale nie mogłem znaleźć żadnej konkretnej odpowiedzi. Przykład: (function () { "use strict"; this.foo = "bar"; // *this* is undefined, why? }()); Testuj na skrzypcach: http://jsfiddle.net/Pyr5g/1/ Sprawdź loggera (firebug).
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.