blob: d022b3196b346687fd3664d6d851675315e8cdcf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
---
title: Funció
slug: Glossary/Funció
tags:
- CodingScripting
- Glossary
- IIFE
- Immediately Invoked Function Expressions (IIFE)
- JavaScript
translation_of: Glossary/Function
---
<p>Una <strong>funció</strong> é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")}}.</p>
<p>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ó.</p>
<h3 id="Diferents_tipus_de_funcions">Diferents tipus de funcions</h3>
<p>Una <strong>funció anònima</strong>és una funció sense un nom de funció:</p>
<pre class="brush: js">function () {}</pre>
<p>Una <strong>funció nomenada</strong> és una funció amb un nom de funció:</p>
<pre class="brush: js">function foo() {}</pre>
<p>Una <strong>funció interna</strong> és una funció dins d'una altra funció (<code>square</code> en aquest cas). Una <strong>funció externa</strong> és una funció que conté una funció (<code>addSquares</code> en aquest cas):</p>
<pre class="brush: js">function addSquares(a,b) {
function square(x) {
return x * x;
}
return square(a) + square(b);
}</pre>
<p>Una <strong>funció recursiva</strong> és una funció que es crida a si mateixa. Veure {{Glossary("Recursion","recursivitat")}}..</p>
<pre class="brush: js">function loop(x) {
if (x >= 10)
return;
loop(x + 1);
}
</pre>
<p>Un <strong>Immediately Invoked Function Expressions</strong> (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.</p>
<pre class="brush: js">// 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");
})();
</pre>
<p>Si voleu saber més sobre IIFEs, feu un cop d'ull a la següent pàgina a la Wikipedia: <a href="https://en.wikipedia.org/wiki /Immediately-invoked_function_expression">Immediately Invoked Function Expression</a></p>
<h2 id="Aprèn_més">Aprèn més</h2>
<h3 id="Referència_tècnica"><span id="result_box" lang="ca"><span>Referència</span> tècnica</span></h3>
<ul>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions" title="en-US/docs/Web/JavaScript/Guide/Functions">Funcions</a></li>
</ul>
|