aboutsummaryrefslogtreecommitdiff
path: root/files/pl/conflicting/web/javascript/guide/functions/index.html
blob: a046c90a8d6817d91640025f615b68d3cc0eeb11 (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
---
title: Definiowanie funkcji
slug: conflicting/Web/JavaScript/Guide/Functions
tags:
  - JavaScript
  - Przewodnik_JavaScript
  - Wszystkie_kategorie
translation_of: Web/JavaScript/Guide/Functions
translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Defining_Functions
original_slug: >-
  Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_języku_JavaScript_1.5/Definiowanie_funkcji
---
<h2 id="Definiowanie_funkcji" name="Definiowanie_funkcji">Definiowanie funkcji</h2>
<p>Na definicję funkcji składają się słowa:</p>
<ul>
  <li>Nazwa funkcji.</li>
  <li>Lista argumentów funkcji, otoczona w nawiasach i oddzielona przecinkami.</li>
  <li>Instrukcje JavaScript, które definiują funkcje, otoczone w nawiasach klamrowych, { }. Instrukcje w funkcji zawierają nazwę do innych funkcji zdefiniowane do aktualnej aplikacji.</li>
</ul>
<p>Na przykład, następujący kod definiuje prostą funkcję nazwaną square:</p>
<pre>function square(number) {
   return number * number;
}
</pre>
<p>Funkcja <code>square</code> bierze jeden argument, nazwany number. Funkcja składa się z jednej instrukcji, która sygnalizuje zwrot argumentu funkcji pomnożonej przez samą siebie. Instrukcja <code>return</code> określa wartość zwracanej funkcji.</p>
<pre>return number * number
</pre>
<p>Wszystkie parametry są przekazywane do funkcji <em>przez wartość</em>; wartość zostaje przekazana do funkcji, ale jeżeli w funkcji wartość parametru zostanie zmieniona, zmiana ta nie będzie widoczna globalnie an. Jednakże, jeżeli przekażesz obiekt jako parametr funkcji, a funkcja zmieni właściwości obiektu, zmiana ta będzie widoczna poza funkcją, tak jak w następującym przykładzie:</p>
<pre>function myFunc(theObject) {
   theObject.make="Toyota"
}

mycar = {make:"Honda", model:"Accord", year:1998};
x=mycar.make;     // zwraca Honda
myFunc(mycar);    // przechodzi obiekt mycar do funkcji
y=mycar.make;     // zwraca Toyota (porada: was changed by the function)
</pre>
<p>Zdefiniowana funkcja jest oparta na warunku. Na przykład, dając następującą definicje funkcji:</p>
<pre>if (num == 0)
{
   function myFunc(theObject) {
   theObject.make="Toyota"
   }
}
</pre>
<p>Funkcja <code>myFunc</code> jest tylko zdefiniowana jeśli zmienna <code>num</code> równa się 0. Jeśli <code>num</code> nie jest równe 0, funkcja nie jest zdefiniowana i jakiekolwiek inne próby nie zostaną wykonane.</p>
<p>Oprócz opisanego tu definiowania funkcji, możliwe jest także definiowanie <a href="/pl/docs/Przewodnik_po_języku_JavaScript_1.5/Obiekty_predefiniowane/Function_Object" title="Przewodnik_po_języku_JavaScript_1.5/Obiekty_predefiniowane/Function_Object">Function objects</a>.</p>
<p>Metoda jest to połączenie funkcji z obiektem. Możesz się nauczyć więcej o obiektach i metodach w <a href="/pl/docs/Przewodnik_po_języku_JavaScript_1.5/Obiekty_predefiniowane/Obiekt_function" title="Przewodnik_po_języku_JavaScript_1.5/Obiekty_predefiniowane/Obiekt_function">Obiekt function</a></p>
<p>Funkcja może być także zdefiniowana wewnątrz wyrażenia. Jest to nazwane wyrażeniem funkcyjnym. Typowo takie funkcje są anonimowe - nie mają nazwy. Na przykład, funkcja <code>square</code> może być zdefiniowana jako:</p>
<pre>const square = function(number) {return number * number};
</pre>
<p>To jest konwencja kiedy przekazujesz jako funkcję jako argument do następnej funkcji. Następujący przykład pokazuje mapę funkcji będących zdefiniowanymi i następnie nazwane z funkcją, a jako pierwszą funkcją będzie parametr:</p>
<pre>function map(f,a) {
   var result=new Array;
   for (var i = 0; i != a.length; i++)
      result[i] = f(a[i]);
   return result;
}
</pre>
<p>Wywołuje:</p>
<pre>map(function(x) {return x * x * x}, [0, 1, 2, 5, 10]);
</pre>
<p>Zwraca {{ mediawiki.external('0, 1, 8, 125, 1000') }}.</p>