JavaScript (Română)

Funcțiile sunt baza de baze în JavaScript. Ele sunt folosite pentru a reutiliza codul, ascunde informații și abstractizare. Ca regulă generală, funcțiile sunt utilizate pentru a specifica comportamentul obiectelor, deși funcțiile pot fi definite în afara obiectelor.

Funcțiile din JavaScript sunt definite de cuvântul rezervat function, urmat de numele funcției. Definiția sa formală este după cum urmează:

Diagrama Definiția unei funcții

Definiție Diagrama Corpul unei funcții

function nombre_funcion() { ...}

Numele funcției este utilizat pentru a apela acea funcție atunci când este necesar. Conceptul este același cu variabilele, care sunt atribuite unui nume unic pentru a le putea folosi în cadrul codului. După numele funcției, două paranteze sunt incluse în cazul în care vom indica parametrii funcției. În cele din urmă, simbolurile și } sunt utilizate pentru a anexa toate instrucțiunile aparținând funcției.

7.1 Obiect Funcții

Funcțiile din JavaScript sunt obiecte. Funcțiile sunt legate de obiecte legate de Function.prototype (care, la rândul său, cu Object.prototype), care includ două proprietăți ascunse: contextul funcției și Codul care implementează comportamentul său.

Fiecare funcție din JavaScript este creată cu o proprietate protoype. Valoarea sa este un obiect cu o proprietate constructor a cărui valoare este funcția în sine. Acest lucru este diferit de legătura ascunsă către Function.prototype. Vom vedea sensul acestei construcții complicate mai târziu. Pe măsură ce funcțiile sunt obiecte, ele pot fi folosite ca orice altă valoare. Ele pot fi stocate în variabile, obiecte sau matrice. Ele pot fi transmise ca argumente la alte funcții și pot fi returnate de alte funcții. În plus, fiind obiecte, ele pot avea și metode. Ceea ce le face cu adevărat special este că pot fi numiți.

7.2 argumente și valori de retur

cele mai simple funcții nu au nevoie de informații pentru a-și produce rezultatele, deși lucru normal este că au nevoie de date pentru a produce rezultate. Variabilele că nevoile funcțiilor sunt numite argumente. Înainte de a le putea folosi, funcția trebuie să indice cât de multe argumente aveți nevoie și care este numele fiecărui argument. În plus, atunci când apelați funcția, ar trebui incluse valorile (sau expresiile) care vor fi transmise funcției. Argumentele sunt indicate în parantezele care merg în spatele numelui funcției și se separă cu o virgulă (,).

var s = function suma_y_muestra(n1, n2) { ... }

În continuare, pentru a utiliza valoarea argumentelor din funcție, același nume trebuie utilizat cu care au fost definite argumentele:

var s = function suma_y_muestra(n1, n2) { var resultado = n1 + n2; console.log("El resultado es " + resultado);}

în cadrul funcției, valoarea variabilei n1 va fi egală cu prima valoare care este transmisă funcției și a valorii Variabila n2 va fi egală cu cea de-a doua valoare care este trecută.

Funcțiile nu numai că pot primi variabile și date, dar pot returna valorile Au calculat. Pentru a returna valorile într-o funcție, se utilizează cuvântul rezervat return. Deși funcțiile pot reveni la valori de orice fel, ele pot returna doar o valoare de fiecare dată când sunt executați.

var c = function (precio) { var impuestos = 1.21; var gastosEnvio = 10; var precioTotal = ( precio * impuestos ) + gastosEnvio; return precioTotal;}

Pentru că funcția returnează o valoare, este necesar doar să scrieți cuvântul rezervat return împreună cu numele variabilei pe care doriți să le întoarceți. În exemplul anterior, execuția funcției atinge instrucțiunea return precioTotal; și în acel moment, returnează valoarea care conține variabila precioTotal.

deoarece funcția returnează o valoare, în punctul în care se efectuează apelul, este indicat numele unei variabile în care valoarea returnată este salvată:

Dacă numele oricărei variabile nu este indicată, JavaScript nu afișează erori, iar valoarea returnată de funcția pur și simplu este pierdută și, prin urmare, nu va fi utilizată în restul programul. Dacă funcția atinge o instrucțiune de tip return, valoarea indicată este returnată și execuția funcției este returnată. Prin urmare, toate instrucțiunile care sunt incluse după un return sunt ignorate și din acest motiv Instrucțiunea return este de obicei ultima dintre cele mai multe funcții.

7.3 Apeluri

Apelarea unei funcții Suspendarea executării funcției curente, trecând controlul și parametrii la noua funcție.În plus față de argumentele declarate, toate funcțiile primesc două argumente suplimentare: this și arguments. Parametrul this este foarte important, o programare orientată pe obiecte, iar valoarea sa este determinată de modelul de apel utilizat. Există patru modele de apel în JavaScript: modelul de apel method, modelul de apel function, modelul de apel constructor și modelul de apel apply.

7.3.1 argumente

Parametrul suplimentar disponibil în funcții este matricea arguments. Oferă funcția accesul la toate argumentele transmise la apel, inclusiv argumentele suplimentare care nu se potrivesc cu parametrii definiți în funcție. Acest lucru face posibilă scrierea funcțiilor care să ia un număr nedeterminat de parametri.

div>

var sum = function() { var i, sum = 0; for (i = 0; i < arguments.length; i += 1) { sum += arguments; } return sum;}; document.writeln(sum(4, 8, 15, 16, 23, 42)); // 108

Datorită unei probleme de proiectare, arguments nu este într-adevăr o matrice, ci un obiect care se comportă ca o matrice. Are proprietatea length, dar nu include restul metodelor de matrice.

7.4 Caracteristici amonimale Autoexcutable

Un model comun în JavaScript sunt funcțiile anonime de auto-executabil. Acest model este de a crea o expresie a funcției și să o executați imediat.

(function(){ var foo = 'Hola mundo';})(); console.log(foo); // indefinido (undefined)

7.5 funcții ca argumente

În JavaScript, funcțiile pot fi atribuite variabilelor sau trecerii la alte funcții ca argumente. În cadre ca jQuery, de exemplu, funcțiile de trecere ca argumente este o practică foarte frecventă.

var myFn = function(fn) { var result = fn(); console.log(result);}; myFn(function() { return 'hola mundo'; }); // muestra en la consola 'hola mundo' var myOtherFn = function() { return 'hola mundo';}; myFn(myOtherFn); // muestra en la consola 'hola mundo'

7.6 Domeniul de aplicare

Domeniul de aplicare într-un limbaj de programare controlează vizibilitatea și ciclul de viață al variabilelor și parametrilor. De exemplu:

var foo = function () { var a = 3, b = 5; var bar = function () { var b = 7, c = 11; // En este punto, a es 3, b es 7, y c es 11 a += b + c; // En este punto, a es 21, b es 7, y c es 11 }; // En este punto, a es 3, b es 5, y c es undefined bar(); // En este punto, a es 21, b es 5};

Cele mai multe limbi, cu sintaxă C, aveți o gamă de blocuri. Toate variabilele definite într-un bloc (declarații definite între taste) nu sunt vizibile în afara acelui bloc. Din păcate, JavaScript nu are vizibilitatea blocului, chiar dacă sintaxa dvs. poate sugera acest lucru și aceasta poate fi o sursă de probleme. JavaScript are o gamă de funcții: aceasta înseamnă că parametrii și variabilele definite într-o funcție nu sunt vizibile în afara acestei funcții și că o variabilă definită oriunde în funcție este vizibilă de oriunde în acea funcție.

H2> 7.7 Funcții de închidere

Veșturi bune despre vizibilitate, este că funcțiile interne pot accesa parametrii și variabilele funcțiilor în care acestea au fost definite (cu excepția this și arguments). Înainte de a defini un obiect care a avut o proprietate value și un increment. Să presupunem că dorim să protejăm schimbările neautorizate de valoare. În loc să inițializeze acest obiect ca literal, îl vom inițializa prin numirea unei funcții care returnează un obiect literal. Vom defini o variabilă value și un obiect de întoarcere cu și getValue:

var myObject = (function () { var value = 0; return { increment: function (inc) { value += typeof inc === 'number' ? inc : 1; }, getValue: function () { return value; } };}());

în acest caz, atât metoda increment ca getValue au acces la variabila value, dar din cauza domeniului său de aplicare, restul aplicației nu are acces la valoarea sa.

7.8 Funcții

Funcțiile pot facilita lucrările cu metode asincrone. Să presupunem următorul caz în care facem o petiție la server:

div>

request = prepare_the_request();response = send_request_synchronously(request);display(response);

problema aici este că așteptăm cu nerăbdare să Răspunsul serverului, astfel încât să blocăm execuția scriptului până când veți primi un răspuns. O strategie mult mai bună este de a face un apel asincron, oferind o funcție de răspuns (callback) care va fi executat atunci când răspunsul este disponibil:

request = prepare_the_request();send_request_asynchronously(request, function (response) { display(response);});

7.9 Execuțiile cascade

Unele metode nu returnează niciun tip de date, puteți modifica pur și simplu starea unor tipuri de date. Dacă facem aceste metode returnați this în loc de undefined, putem lansa execuția acelor metode cascadă. Funcțiile de cascadă ne pot permite să scriem declarații de acest tip:

div>

getElement('myBoxDiv') .move(350, 150) .width(100) .height(100) .color('red') .border('10px outset') .padding('4px') .appendText("Please stand by") .on('mousedown', function (m) { this.startDrag(m, this.getNinth(m)); }) .on('mousemove', 'drag') .on('mouseup', 'stopDrag') .tip('This box is resizeable');

Exercițiul 6

a se vedea enunțarea

Exercițiul 7

Vizualizare instrucțiune

Exercițiul 8

a se vedea enunțarea

Exercițiul 9

Vizualizare instrucțiune

Exercițiul 10

a se vedea enunțarea

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *