chiamata di funzione JavaScript
Ci sono quattro tipi di funzione JavaScript viene chiamato.
Ogni modi diversi che questa inizializzazione modalità.
questa parola chiave
In generale, in Javascript, questo si riferisce alle funzioni degli oggetti attuali eseguite.
Si noti che questa è una parola chiave riservata, non è possibile modificare questo valore. |
chiamata di funzione JavaScript
Nel paragrafo precedente abbiamo imparato come creare una funzione.
Il codice di funzione viene eseguita dopo che la funzione viene chiamata.
Come una chiamata di funzione
Esempi
tornare a * b;
}
myFunction (10, 2); // myFunction (10, 2) restituisce 20
Prova »
La funzione di cui sopra non appartiene a qualsiasi oggetto. Tuttavia, in JavaScript, è sempre l'oggetto globale di default.
In HTML, l'oggetto globale di default è la pagina HTML stessa, in modo che la funzione è parte della pagina HTML.
Nella finestra del browser oggetto pagina del browser (oggetti finestra). Nel corso funzione diventa automaticamente una funzione di oggetto finestra.
myFunction () e window.myFunction () è lo stesso:
Esempi
tornare a * b;
}
window.myFunction (10, 2); // window.myFunction (10, 2) restituisce 20
Prova »
Questo è un metodo comunemente usato richiama una funzione JavaScript, ma non è una buona pratica di programmazione variabili globali, metodi o funzioni che possono causare conflitti di denominazione bug. |
Gli oggetti globali
Quando una funzione chiama sé non è un oggetto ?, Questo valore diventerà l'oggetto globale.
Nel browser Web, la finestra del browser è l'oggetto globale (oggetti finestra).
Gli esempi di questo valore di ritorno è l'oggetto finestra:
Esempi
restituire questo;
}
myFunction (); // Restituisce l'oggetto finestra
Prova »
Funzione come un oggetto globale per chiamare, questo sarà il valore dell'oggetto globale. Utilizzare oggetto finestra come una variabile è probabile che a causare il crash del programma. |
In funzione della chiamata al metodo
In JavaScript è possibile utilizzare una funzione definita come un metodo oggetto.
L'esempio seguente crea un oggetto (myObject), l'oggetto ha due proprietà (firstName e lastName), e un metodo (fullName):
Esempi
cognome: "John",
Cognome: "Doe",
fullName: function () {
tornare this.firstName + "" + this.lastName;
}
}
myObject.fullName (); // restituisce "John Doe"
Prova »
Metodo fullName è una funzione. Funzione appartengono all'oggetto. myObject è il proprietario della funzione.
questo oggetto ha un codice JavaScript. Valore myObject oggetto istanza di questo.
Il test che segue! FullName modificare questo valore di metodo e di ritorno:
Esempi
cognome: "John",
Cognome: "Doe",
fullName: function () {
restituire questo;
}
}
myObject.fullName (); // ritorna [object Object] (proprietario di un oggetto)
Prova »
Funzione come una chiamata al metodo oggetto, quindi questo sarà il valore dell'oggetto stesso. |
Utilizzare le chiamate di funzione costruttore
Se la funzione è chiamata prima di utilizzare la nuova parola chiave, il costruttore viene chiamato.
Sembra che per creare una nuova funzione, ma in realtà le funzioni JavaScript sono oggetti ricreati:
Esempi
la funzione myFunction (arg1, arg2) {
this.firstName = arg1;
this.lastName = arg2;
}
// Questo crea un nuovo oggetto
var x = new myFunction ( "John", "Rossi");
x.firstName; // restituisce "John"
Prova »
Chiamare il costruttore per creare un nuovo oggetto. Nuovo oggetto eredita le proprietà ei metodi del costruttore.
Costruttore questa parola chiave non ha alcun valore. questo valore per creare un'istanza di un oggetto (nuovo oggetto) in una chiamata di funzione. |
In funzione della funzione di chiamata di metodo
In JavaScript, le funzioni sono oggetti. funzione JavaScript ha i suoi attributi e metodi.
chiamare () e applicare () è un metodo predefinito. Entrambi i metodi possono essere utilizzati per chiamare una funzione, il primo argomento due metodi devono essere l'oggetto stesso.
Esempi
tornare a * b;
}
myFunction.call (myObject, 10, 2); // ritorna 20
Esempi
tornare a * b;
}
myArray = [10,2];
myFunction.apply (myObject, myArray); // ritorna 20
Entrambi i metodi utilizzano l'oggetto stesso come primo parametro. La differenza è che il secondo argomento: applicare passato è un array di parametri, cioè, una pluralità di parametri combinati in un array passati, e quindi chiamare come parametro chiamata passante (dall'inizio del secondo argomento).
In modalità rigorosa JavaScript (modalità rigorosa), la chiamata di funzione nel primo argomento diventerà questo valore, anche se il parametro non è un oggetto.
Nella modalità rigorosa non JavaScript (modalità non-strict), se il valore del primo parametro è nullo o non definita, utilizzerà invece l'oggetto globale.
In questo modo è possibile impostare il valore dalla chiamata () o applicare (), e chiamando come un nuovo metodo di un oggetto che esiste già. |