Chiamata funzione JavaScript

Il codice interno della funzione JavaScript viene eseguito quando qualcosa chiama.

Chiamare la funzione JavaScript

Quando la funzione vieneDefinizioneLa funzione interna non viene eseguita.

Quando la funzione vieneChiamataAl momento della chiamata, il codice interno della funzione viene eseguito.

Chiamare una funzione può anche essere detta “avviare una funzione” o “eseguire una funzione”.

In questo tutorial, usiamo “Chiamata”。

Chiamare una funzione in forma di funzione

Esempio

myFunction() e window.myFunction() sono la stessa funzione:
    function myFunction(a, b) {
}
myFunction(10, 2);           // Restituirà 20

Prova te stesso

Queste funzioni non appartengono a nessun oggetto. Ma in JavaScript, c'è sempre un oggetto globale predefinito.

In HTML, l'oggetto globale predefinito è la pagina HTML stessa, tutte le funzioni sopra appartengono alla pagina HTML.

Nella finestra del browser, questo oggetto di pagina è la finestra del browser. La funzione sopra automaticamente diventa una funzione della finestra.

myFunction() 和 window.myFunction() 是同一个函数:

Esempio

myFunction() e window.myFunction() sono la stessa funzione:
    function myFunction(a, b) {
}
return a * b;

Prova te stesso

window.myFunction(10, 2); // Restituirà anche 20

Questo è un metodo comune per chiamare una funzione, ma non è un'abitudine buona.

this le variabili globali, i metodi o le funzioni globali possono facilmente causare conflitti di nomi e vulnerabilità nell'oggetto globale.

parola chiave this in JavaScript, è chiamato

this l'oggetto che possiede questa cosa, si riferisce all'oggetto che "avente" il codice corrente.

valore, quando viene utilizzato all'interno di una funzione, è l'oggetto che "avente" la funzione. this Attenzione this valore. Non è una variabile. Appartiene a una parola chiave. Non puoi cambiarla

l'oggetto globale

Quando si chiama un oggetto senza proprietario oggetto,this valore diventa l'oggetto globale.

In un browser web, l'oggetto globale è l'oggetto del browser.

Questo esempio utilizza this valore restituisce questo oggetto window:

Esempio

var x = myFunction();            // x diventa l'oggetto window
function myFunction() {
   return this;
}

Prova te stesso

Chiamare una funzione come funzione globale, può causare this valore diventa l'oggetto globale.

Usare l'oggetto window come variabile può facilmente far crollare il programma.

Chiamare una funzione come metodo

In JavaScript, puoi definire una funzione come metodo di un oggetto.

Esempio: crea un oggetto (myObject) con due proprietà (firstName e lastName) e un metodo (fullName):

Esempio

var myObject = {
    firstName: "Bill",
    lastName: "Gates",
    fullName: function () {
        return this.firstName + " " + this.lastName;
    }
}
myObject.fullName();         // Restituisce "Bill Gates"

Prova te stesso

Il metodo fullName è una funzione. La funzione appartiene all'oggetto. myObject è il proprietario della funzione.

è chiamato this l'oggetto che possiede questa cosa, è l'oggetto "avente" questo codice JavaScript. In questo esempio,this valore è myObject.

prova! Modifica il metodo fullName per restituire this valore:

Esempio

var myObject = {
    firstName: "Bill",
    lastName: "Gates",
    fullName: function () {
        return this;
    }
}
myObject.fullName();          // Restituisce [object Object] (oggetto proprietario)

Prova te stesso

Chiamare una funzione come metodo di oggetto Porterà this il valore diventerà l'oggetto stesso.

viene chiamata tramite il costruttore di funzione

e la chiamata della funzione new Se la parola chiave è preceduta da

Sembra che tu stia creando una nuova funzione, ma poiché le funzioni JavaScript sono oggetti, in realtà stai creando un nuovo oggetto:

Esempio

// Questo è il costruttore della funzione:
function myFunction(arg1, arg2) {
    this.firstName = arg1;
    this.lastName = arg2;
}
// Ecco un nuovo oggetto creato:
var x = new myFunction("Bill", "Gates");
x.firstName;                             // restituirà "Bill"

Prova te stesso

La chiamata del costruttore creerà un nuovo oggetto. Il nuovo oggetto erediterà proprietà e metodi dal costruttore.

Dentro il costruttore this La parola chiave non ha un valore.

this Il valore diventerà un nuovo oggetto creato al momento della chiamata della funzione.