Nazywa się Immediately-Invoked Function Expression (lub IIFE). Tworzy nowy zakres i natychmiast wykonuje zawartość. Istnieje wiele zastosowań; najbardziej używam słowa kluczowego, gdy słowo kluczowe zmieniłoby się, np. w
var someClass = function() {
this.property = something;
this.update = (function(obj) {
function() {
$('.el').each(function() {
$(this).html(obj.property);
});
};
)(this);
};
Chociaż chcę odnieść się do this.property
wewnątrz $('.el').each()
, this
zmian intencje w tym zakresie i odnosi się do bieżącego elementu DOM, który jest przelotowe z .each()
. Więc przekazując this
jako parametr do IIFE (i wywołując ten parametr obj
) mogę użyć obj.property
, aby odnieść się do tego, co jest this.property
, gdy wykracza poza zakres $('.el').each(..., function() { ... });
.
Daj mi znać, jeśli to ma sens, lub jeśli masz jakieś pytania :)
proponuję lekturę, http://benalman.com/news/2010/11/immediately-invoked-function-expression/ –
Zobacz także: [jak działa funkcja anonimowa w JavaScript praca?] (http://stackoverflow.com/questions/1140089/how-does-an-anonymous-function-in-javascript-work). –
@KevinDeVoe Twój duplikat jest lepszy – Dave