--- title: Funció slug: Glossary/Funció tags: - CodingScripting - Glossary - IIFE - Immediately Invoked Function Expressions (IIFE) - JavaScript translation_of: Glossary/Function ---
Una funció és un fragment de codi que pot ser cridat per altres codis o per si mateix, o una {{Glossary("variable")}} que fa referència a la funció. Quan una funció es cridada, es passan {{Glossary("argument", "arguments")}} a la funció com a entrada, i opcionalment la funció pot retornar una sortida. Una funció de {{glossary("JavaScript")}} és també un {{glossary("objecte")}}.
Un nom de funció és un {{Glossary("identificador")}} definit com a part d'una declaració de la funció o expressió de funció. El {{Glossary("àmbit")}} del nom de la funció depèn de si el nom de la funció és una declaració o expressió.
Una funció anònimaés una funció sense un nom de funció:
function () {}
Una funció nomenada és una funció amb un nom de funció:
function foo() {}
Una funció interna és una funció dins d'una altra funció (square
en aquest cas). Una funció externa és una funció que conté una funció (addSquares
en aquest cas):
function addSquares(a,b) { function square(x) { return x * x; } return square(a) + square(b); }
Una funció recursiva és una funció que es crida a si mateixa. Veure {{Glossary("Recursion","recursivitat")}}..
function loop(x) { if (x >= 10) return; loop(x + 1); }
Un Immediately Invoked Function Expressions (IIFE) és una funció que es crida directament després de que la funció es carregui en el compilador del navegador. La manera d'identificar un IIFE és mitjançant la localització dels parèntesis extra d'esquerra i dreta al final de la declaració de la funció. Hi ha molts avantatges d'aquest tipus d'expressió de funció, però que està fora de l'abast del curs.
// Error (https://en.wikipedia.org/wiki/Immediately-invoked_function_expression) /* function foo() { console.log('Hello Foo'); }(); */ (function foo() { console.log("Hello Foo"); }()); // Douglas Crockford's style (function food() { console.log("Hello Food"); })();
Si voleu saber més sobre IIFEs, feu un cop d'ull a la següent pàgina a la Wikipedia: Immediately Invoked Function Expression