REGISTER











Funcții
#1
O funcție este un bloc cu o listă de parametri (eventual gol), care are dat în mod normal, un nume.
O funcție poate utiliza variabile locale.
Dacă ieșiți din funcție fără o declarație de întoarcere, valoarea undefined este returnata.
Code:
function gcd ( segmentA , segmentB ) {
  var diff = segmentA - segmentB ;
  if ( diff === 0 )  
     return segmentA;
  return diff > 0 ? gcd ( segmentB , diff ) : cmmdc (segmentB, dif);
}
alert ( gcd ( 60 , 40 ) ) ; // 20

var mygcd = gcd ; // mygcd este o referință la aceeași funcție ca cmmdc.
alert ( mygcd ( 60 , 40 ) ) ; // 20

Funcțiile sunt obiecte de prima clasa si pot fi alocate altor variabile.
Numărul de argumente al unei funcții nu este necesar să corespundă cu numărul de argumente din definiția funcției, un argument numit în definiția careia ii lipseste un argument din definitia apelului va avea valoarea undefined (care poate fi în mod implicit fals).
În cadrul funcției, argumentele pot fi accesate, de asemenea, prin obiectul arguments; aceasta asigură acces la toate argumentele care utilizează indici (de exemplu, arguments[0], arguments[1], ... arguments[n] ), inclusiv celor dincolo de numărul de argumente. (În timp ce lista de argumente are o proprietate lungime (.length), acesta nu este un exemplu de matrice, ea nu are metode, cum ar fi slice(), sort(), etc.).
Code:
function add7 ( x , y ) {
   if ( ! y ) {
      y = 7 ;
   }
   alert ( x + y + arguments. length ) ;
} ;
add7 ( 3 ) ; // 11
add7 ( 3 , 4 ) ; // 9
Toți parametrii sunt transmisi prin valoare (pentru obiecte este referinta la obiectul pe care este trecut).
Code:
var obj1 = { a : 1 } ;
var obj2 = { b : 2 } ;
function foo ( p ) {
  p = obj2 ; // ignores actual parameter
  p. b = arguments [ 1 ] ;
}
foo ( obj1 , 3 ) ; // nu afectează complet obj1
3 este parametru suplimentar
Code:
alert ( obj1. a + " " + obj2. b ) ; // scrie 1 3
Funcțiile pot fi declarate în interiorul alte funcții, și pot accesa variabilele locale ale funcției exterioare. Mai mult, ei implementeaza metode complete de închidere prin amintirea variabilelor locale funcției exterioare, chiar și după ce s-a iesit din funcția exterioara.
Code:
var v = "Top" ;
var bar , baz ;
function foo () {
  var v = "fud" ;
  bar = function () { alert ( v ) } ;;
  baz = function ( x ) { v = x ; } ;
}
Reply



Powered by MyBB All rights reserved
Developed with for FASTCS 2011 - 2024 FASTCS