A függvény deklaráció és függvény változó (vagy függvény kifejezés) közti egyik használatbeli különbség, ez:
var functionExpression;
var functionExpressionDefined;
functionExpressionDefined = function() {console.log("alma");};
functionDeclaration(); // ez meghívódik
functionExpressionDefined(); // ez meghívódik
functionExpression(); // ez hibát dob a Console-ra
function functionDeclaration() {console.log("dinnye");}
functionExpression = function() {console.log("bogyó");};
Ebből még az látszódna, hogy a függvény deklaráció jobb, mert nem kell törődni azzal, hogy hol van definiálva a függvény. Viszont függvény kifejezéssel lehet pl. ilyet csinálni:
var eatIt;
if (window.prompt("Gyümölcs ") === "orange") {
eatIt = function () { /*peel it, eat it*/ };
} else {
eatIt = function () { /*wash it, eat it*/ };
}
eatIt();
Magyarán ugyanazt a változót (eatIt
, ami jelen esetben függvény) használom, de különböző dolgokat csinál.