Definiowanie funkcji
Na definicję funkcji składają się słowa:
- Nazwa funkcji.
- Lista argumentów funkcji, otoczona w nawiasach i oddzielona przecinkami.
- Instrukcje JavaScript, które definiują funkcje, otoczone w nawiasach klamrowych, { }. Instrukcje w funkcji zawierają nazwę do innych funkcji zdefiniowane do aktualnej aplikacji.
Na przykład, następujący kod definiuje prostą funkcję nazwaną square:
function square(number) {
return number * number;
}
Funkcja square
bierze jeden argument, nazwany number. Funkcja składa się z jednej instrukcji, która sygnalizuje zwrot argumentu funkcji pomnożonej przez samą siebie. Instrukcja return
określa wartość zwracanej funkcji.
return number * number
Wszystkie parametry są przekazywane do funkcji przez wartość; 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:
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)
Zdefiniowana funkcja jest oparta na warunku. Na przykład, dając następującą definicje funkcji:
if (num == 0)
{
function myFunc(theObject) {
theObject.make="Toyota"
}
}
Funkcja myFunc
jest tylko zdefiniowana jeśli zmienna num
równa się 0. Jeśli num
nie jest równe 0, funkcja nie jest zdefiniowana i jakiekolwiek inne próby nie zostaną wykonane.
Oprócz opisanego tu definiowania funkcji, możliwe jest także definiowanie Function objects.
Metoda jest to połączenie funkcji z obiektem. Możesz się nauczyć więcej o obiektach i metodach w Obiekt function
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 square
może być zdefiniowana jako:
const square = function(number) {return number * number};
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:
function map(f,a) {
var result=new Array;
for (var i = 0; i != a.length; i++)
result[i] = f(a[i]);
return result;
}
Wywołuje:
map(function(x) {return x * x * x}, [0, 1, 2, 5, 10]);
Zwraca [0, 1, 8, 125, 1000].
autor: Dawid Wójcik
źródło : https://developer.mozilla.org/pl/docs/Web/JavaScript/Guide/Obsolete_Pages/Przewodnik_po_j%C4%99zyku_JavaScript_1.5/Definiowanie_funkcji