Prośba o wyjaśnienie kodu z wyrażeniem funkcyjnym w instrukcji wywołania.

0

Witajcie,
zastanawiam się o co tu chodzi - wyrażenie funkcyjne umieszczone bezpośrednio w instrukcji wywołania. Hmm..
No i druga rzecz, mam 'syntax error' gdy uruchomię ten kod


function (food){
	if (food === "ciasteczka") {
		alert ("Poproszę o więcej.");
	} else if (food === "ciasto") {
		alert ("Mniam mniam.");
	}
}) ("ciasteczka");

0

to jest tak zwane IIFE – Immediately-invoked function expression
funkcja która sama natychmiast się wywołuje
musisz zacząć od nawiasu żeby działało tzn.
(function(costam)
{
alert(costam)
}
)("cos")

https://blog.gutek.pl/2014/01/13/iife-immediately-invoked-function-expression/

1
Kubs napisał(a):

No i druga rzecz, mam 'syntax error' gdy uruchomię ten kod


function (food){
	if (food === "ciasteczka") {
		alert ("Poproszę o więcej.");
	} else if (food === "ciasto") {
		alert ("Mniam mniam.");
	}
}) ("ciasteczka");

brak nawiasu na początku

(function (food){
    if (food === "ciasteczka") {
        alert ("Poproszę o więcej.");
    } else if (food === "ciasto") {
        alert ("Mniam mniam.");
    }
}) ("ciasteczka");
1

to jest to samo co

function Food1(food){
if (food === "ciasteczka") {
alert ("Poproszę o więcej.");
} else if (food === "ciasto") {
alert ("Mniam mniam.");
}
}

Food1("ciasteczka")

szczerze to ja tych IIFE nie używam wolę zwyczajne funkcje, wiem tylko że istnieją pewnie w niektórych firmach używa się ich na co dzień a w innych nie, warto wiedzieć że są np. na rozmowie kwalifikacyjnej i żeby się nie przestraszyć jak się pierwszy raz zobaczy bo dla niewtajemniczonego dziwnie wyglądają :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1