Sunteți pe pagina 1din 4

Moduri de declarare a funcțiilor în JS

Elaborat: Constantin Cuciurcă


O funcție în JS poate fi declarată prin mai multe metode, metoda standard este cu
ajutorul cuvântului cheie function, după care urmează:

- Numele funcției
- Lista de parametri formali, care se află între 2 paranteze rotunde și separate
prin virgulă.
- Instrucțiunile JS care funcția trebuie să le execute, care se află între { }

În acest exemplu avem o funcție simplă care ridică un număr la


pătrat, ca părți componente avem:
function square(number) {
return number * number; - Numele funcției: square
} - Un singur parametru formal cu numele: number
- Partea logică a funcției constă doar în returnarea unei
valori, care presupune returnarea parametrului number înmulțit
cu el însuși.

* Instrucțiunea return presupune valoarea returnată de funcție, ceea ce este plasat


după ea – este returnat.
* Dacă funcția nu are cuvântul return în funcție, ea se consideră procedură, dar de
fapt ea oricum returnează undefined, așa că nu va fi o eroare asignarea valorii
funcției care nu are return în ea unei variabile.
Parametri de tip valoare/referință?

Nu, în JS nu putem să controlăm acest lucru, el este implicit function square(number) {


return number * number;
setat, și constă în faptul că variabilele primitive ca number }
din exemplu sunt transmise ca tip valoare, adică este
transmisă în funcție doar valoarea variabilei, astfel în acest caz dacă asignăm
altceva în number el nu va fi reflectat în exterior, dar dacă ca parametru
plasăm un obiect sau oricare valoare non-primitivă ca: Array sau obiect definit
de noi – mutațiile făcute în acel obiect sau array vor fi reflectate în exterior
(ATENȚIE la acest lucru, vedeți exemplul).

function myFunc(theObject) {
theObject.make = 'Toyota';
Fiți atenți când schimbați
} parametrul funcției, dar în cel
mai bun caz – nu faceți acest
var mycar = {make: 'Honda', model: 'Accord', year: 1998};
var x, y; lucru, pentru că pot apărea
probleme mari de care nu vă ve-
x = mycar.make; // x ia valoarea "Honda" ți da seama de unde au apărut.
myFunc(mycar);
y = mycar.make; // y ia valoarea "Toyota"
// (proprietatea make a fost modificată de funcție)
Referința la funcție, recursie?

Exemplul e puțin straniu, dar asta e JS


var factorial = function fac(n) { return n < 2 ? 1 : n * fac(n - 1); };

console.log(factorial(3));

Numele funcției dat după cuvântul cheie function poate fi folosit pentru a o
apela recursiv sau pentru a o identifica in stack trace (des folosit în procesul
de debug)

function myFunc(theObject) {
theObject.make = 'Toyota';
}

var mycar = {make: 'Honda', model: 'Accord', year: 1998};


var x, y;

x = mycar.make; // x ia valoarea "Honda"

myFunc(mycar);
y = mycar.make; // y ia valoarea "Toyota"
// (proprietatea make a fost modificată de funcție)

S-ar putea să vă placă și