Appel de la fonction JavaScript

Le code interne d'une fonction JavaScript est exécuté lorsque “quelque chose” l'appelle.

Appeler une fonction JavaScript

Lorsque la fonction estDéfinirlorsque, le code interne de la fonction ne sera pas exécuté.

Lorsque la fonction estAppellorsque, le code interne de la fonction sera exécuté.

L'appel d'une fonction peut également être dit “démarrer une fonction” ou “exécuter une fonction”.

Dans ce tutoriel, nous utilisons “Appel”。

Appeler une fonction sous forme de fonction

Instance

function myFunction(a, b) {
    return a * b;
}
myFunction(10, 2);           // Retournera 20

Essayer par vous-même

Ces fonctions n'appartiennent à aucun objet. Mais dans JavaScript, il existe toujours un objet global par défaut.

Dans HTML, l'objet global par défaut est la page HTML elle-même, toutes les fonctions ci-dessus appartiennent à la page HTML.

Dans le navigateur, cet objet de page est la fenêtre du navigateur. La fonction ci-dessus devient automatiquement une fonction de fenêtre.

myFunction() et window.myFunction() sont la même fonction :

Instance

function myFunction(a, b) {
    return a * b;
}
window.myFunction(10, 2);    // Retournera également 20

Essayer par vous-même

C'est une méthode courante d'appel de fonction, mais ce n'est pas une bonne habitude.

Les variables globales, méthodes ou fonctions globales peuvent facilement produire des conflits de noms et des vulnérabilités dans l'objet global.

this keyword

En JavaScript, c'est appelé this L'objet de la chose, signifie l'objet "possédant" le code courant.

this la valeur, lorsqu'elle est utilisée dans une fonction, est l'objet "possédant" cette fonction.

Veuillez noter this Ce n'est pas une variable. C'est une keyword. Vous ne pouvez pas changer this la valeur.

l'objet global

Lorsqu'un objet est appelé sans propriétaire d'objet,this la valeur devient l'objet global.

Dans un navigateur web, l'objet global est l'objet navigateur.

Cet exemple utilise this la valeur retourne cet objet window :

Instance

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

Essayer par vous-même

Appeler une fonction en tant que fonction globale entraînera this la valeur devient l'objet global.

Utiliser l'objet window en tant que variable peut facilement faire crasher le programme.

Appeler une fonction en tant que méthode

En JavaScript, vous pouvez définir une fonction comme méthode d'objet.

L'exemple suivant crée un objet (myObject), avec deux propriétés (firstName et lastName), et une méthode (fullName) :

Instance

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

Essayer par vous-même

La méthode fullName est une fonction. Cette fonction appartient à l'objet. myObject est le propriétaire de la fonction.

est appelé this L'objet de la chose, est l'objet "possédant" ce code JavaScript. Dans cet exemple,this la valeur est myObject.

Essayons ! Modifiez cette méthode fullName pour retourner this la valeur :

Instance

var myObject = {
    firstName: "Bill",
    lastName: "Gates",
    fullName: function () {
        return this;
    }
}
myObject.fullName();          // Retourne [object Object] (l'objet propriétaire)

Essayer par vous-même

Appeler une fonction en tant que méthode d'objet entraînera this La valeur deviendra l'objet lui-même.

Appeler une fonction via le constructeur de la fonction

Si le mot-clé est utilisé avant l'appel d'une fonction new Si le mot-clé est utilisé, alors c'est un appel de constructeur.

Il semble que vous créiez une nouvelle fonction, mais comme les fonctions JavaScript sont des objets, vous créez en réalité un nouveau objet :

Instance

// C'est le constructeur de la fonction :
function myFunction(arg1, arg2) {
    this.firstName = arg1;
    this.lastName = arg2;
}
// Un nouveau objet a été créé :
var x = new myFunction("Bill", "Gates");
x.firstName;                             // Retournera "Bill"

Essayer par vous-même

L'appel du constructeur créera un nouveau objet. Ce nouveau objet héritera des propriétés et des méthodes de son constructeur.

Dans le constructeur this Le mot-clé n'a pas de valeur.

this La valeur deviendra un nouvel objet créé lors de l'appel de la fonction.