Gli ultimi tutorial di sviluppo web
 

JavaScript Definizione di funzioni


Funzioni JavaScript vengono definite con la function parola chiave.

È possibile utilizzare una dichiarazione di funzione o un'espressione di funzione.


dichiarazioni di funzioni

All'inizio di questo tutorial, si è appreso che le funzioni sono dichiarate con la seguente sintassi:

function functionName ( parameters ) {
  code to be executed
}

funzioni dichiarate non vengono eseguite immediatamente. Essi sono "salvate per un uso successivo", e saranno eseguiti in seguito, quando sono invocati (chiamati).

Esempio

function myFunction(a, b) {
    return a * b;
}
Prova tu stesso "

Virgola sono usati per separare le istruzioni JavaScript eseguibili.
Dal momento che una dichiarazione di funzione non è un'istruzione eseguibile, non è comune per terminare con un punto e virgola.


Espressioni di funzione

Una funzione JavaScript può anche essere definito utilizzando un'espressione.

Un'espressione funzione può essere memorizzato in una variabile:

Esempio

var x = function (a, b) {return a * b};
Prova tu stesso "

Dopo un'espressione funzione è memorizzata in una variabile, la variabile può essere utilizzata come una funzione:

Esempio

var x = function (a, b) {return a * b};
var z = x(4, 3);
Prova tu stesso "

La funzione di cui sopra è in realtà una funzione anonima (una funzione senza un nome).

Funzioni memorizzati in variabili non hanno bisogno di nomi delle funzioni. Essi sono sempre invocati (chiamata) utilizzando il nome della variabile.

La funzione sopra termina con una virgola perché è una parte di un'istruzione eseguibile.


La Function() Costruttore

Come avete visto negli esempi precedenti, le funzioni JavaScript vengono definite con la function parola chiave.

Le funzioni possono anche essere definiti con un built-in JavaScript funzione di costruzione chiamata Function() .

Esempio

var myFunction = new Function("a", "b", "return a * b");

var x = myFunction(4, 3);
Prova tu stesso "

In realtà non c'è bisogno di utilizzare la funzione di costruzione. L'esempio precedente è lo stesso di scrittura:

Esempio

var myFunction = function (a, b) {return a * b};

var x = myFunction(4, 3);
Prova tu stesso "

La maggior parte del tempo, è possibile evitare di utilizzare la new parola chiave in JavaScript.


Function Hoisting

All'inizio di questo tutorial, si è appreso su "hoisting" .

Sollevamento è il comportamento predefinito di JavaScript del movimento dichiarazioni alla parte superiore dell'ambito corrente.

Sollevamento vale per le dichiarazioni di variabili e di dichiarazioni di funzione.

A causa di questo, le funzioni JavaScript possono essere chiamate prima di essere dichiarati:

myFunction(5);

function myFunction(y) {
    return y * y;
}

Funzioni definite utilizzando un'espressione non vengono issate.


Funzioni di auto-Invocare

Le espressioni di funzione possono essere fatte "auto-invocazione".

Un'espressione auto-invocazione è invocato (avviato) automaticamente, senza essere chiamati.

Le espressioni di funzione esegue automaticamente se l'espressione è seguito da () .

Non si può auto-richiamare una dichiarazione di funzione.

È necessario aggiungere parentesi attorno alla funzione per indicare che si tratta di un'espressione di funzione:

Esempio

(function () {
    var x = "Hello!!";      // I will invoke myself
})();
Prova tu stesso "

La funzione di cui sopra è in realtà una funzione di auto-richiamando anonima (funzione senza nome).


Le funzioni possono essere utilizzati come valori

funzioni JavaScript possono essere utilizzati come valori:

Esempio

function myFunction(a, b) {
    return a * b;
}

var x = myFunction(4, 3);
Prova tu stesso "

funzioni JavaScript possono essere utilizzati nelle espressioni:

Esempio

function myFunction(a, b) {
    return a * b;
}

var x = myFunction(4, 3) * 2;
Prova tu stesso "

Le funzioni sono oggetti

Il typeof operatore in JavaScript ritorna "function" per le funzioni.

Ma, funzioni JavaScript possono essere meglio descritti come oggetti.

Funzioni JavaScript hanno sia proprietà e metodi.

La proprietà arguments.length restituisce il numero di argomenti ricevuto quando è stata richiamata la funzione:

Esempio

function myFunction(a, b) {
    return arguments.length;
}
Prova tu stesso "

Il toString() restituisce la funzione come una stringa:

Esempio

function myFunction(a, b) {
    return a * b;
}

var txt = myFunction.toString();
Prova tu stesso "

Una funzione definita come la proprietà di un oggetto, viene chiamato un metodo per l'oggetto.
Una funzione progettato per creare nuovi oggetti, viene chiamato un costruttore di oggetto.