Funcțiile JavaScript sunt definite cu function de cuvinte cheie.
Puteți utiliza o declarație funcție sau o expresie funcție.
Declarații de funcții
Mai devreme în acest tutorial, ați învățat că funcțiile sunt declarate cu următoarea sintaxă:
function functionName ( parameters ) {
code to be executed
}
funcțiile declarate nu sunt executate imediat. Acestea sunt "saved for later use" o (called upon) "saved for later use" , și va fi executat mai târziu, atunci când acestea sunt invocate (called upon) .
Virgulele sunt folosite pentru a separa declarații JavaScript executabile.
Deoarece o declarație funcție nu este o instrucțiune executabilă, nu este comun să se termine cu punct și virgulă.
Expresii funcționale
O funcție JavaScript poate fi definită folosind o expresie.
O expresie funcție poate fi stocată într-o variabilă:
După o expresie funcție a fost stocată într-o variabilă, variabila poate fi utilizată ca o funcție:
Funcția de mai sus este de fapt o funcție anonimă (o funcție fără nume).
Funcții stocate în variabilele nu au nevoie de nume de funcții. Ele sunt întotdeauna invocate (called) folosind numele variabilei.
Funcția de mai sus se termină cu punct și virgulă, pentru că este o parte dintr-o instrucțiune executabilă.
Function() Constructor
După cum ați văzut în exemplele anterioare, funcțiile JavaScript sunt definite cu function de cuvinte cheie.
Funcțiile pot fi , de asemenea , definită cu un built-in funcția JavaScript constructor numit Function() .
Exemplu
var myFunction = new Function("a", "b", "return a *
b");
var x = myFunction(4, 3);
Încearcă - l singur » Tu de fapt, nu trebuie să utilizați funcția de constructor. Exemplul de mai sus este aceeași ca și scris:
Exemplu
var myFunction = function (a, b) {return a * b};
var x = myFunction(4, 3);
Încearcă - l singur » Cele mai multe ori, puteți evita folosind new cuvânt cheie în JavaScript.
Function Hoisting
Mai devreme în acest tutorial, ați aflat despre "hoisting" .
Comportamentul de ridicare este implicit al JavaScript declarațiilor se deplasează la partea de sus a domeniului de aplicare curent.
Ridicat se aplică declarațiilor variabile și a declarațiilor de funcții.
Din acest motiv, funcțiile JavaScript pot fi numite înainte ca acestea sunt declarate:
myFunction(5) ;
function myFunction(y) {
return y * y;
}
Funcțiile definite folosind o expresie nu sunt arborate.
Funcții-Invocarea auto-
Expresii funcționale pot fi făcute "self-invoking" .
O expresie de sine invocarea este invocată (started) în mod automat, fără a fi numit.
Expresiile Funcția va executa în mod automat în cazul în care expresia este urmată de () .
Nu se poate auto-invoca o declarație a funcției.
Trebuie să adăugați paranteze în jurul funcției pentru a indica faptul că acesta este o expresie funcție:
Funcția de mai sus este de fapt o funcție anonimă auto invocând (funcția fără nume).
Funcțiile pot fi folosite ca valori
funcțiile JavaScript pot fi folosite ca valori:
funcțiile JavaScript pot fi folosite în expresii:
Exemplu
function myFunction(a, b) {
return a * b;
}
var x = myFunction(4, 3) * 2;
Încearcă - l singur » Funcțiile sunt obiecte
typeof Operatorul în JavaScript returnează "function" pentru funcțiile.
Dar, funcțiile JavaScript pot fi cel mai bine descris ca obiecte.
Funcțiile JavaScript au atât proprietăți și metode.
Proprietatea arguments.length returnează numărul de argumente primite atunci când a fost invocată funcția:
toString() Metoda returnează funcția ca un șir de caractere:
Exemplu
function myFunction(a, b) {
return a * b;
}
var txt =
myFunction.toString();
Încearcă - l singur » O funcție definită ca proprietatea unui obiect, se numește metoda obiectului.
O funcție conceput pentru a crea noi obiecte, se numește un constructor obiect.