JavaScript-Funktionaufruf

Der Code im JavaScript-Funktion wird ausgeführt, wenn 'etwas' es aufruft.

JavaScript-Funktion aufrufen

Wenn die FunktionDefinierenwird, wird der Code im Funktionsinneren nicht ausgeführt.

Wenn die FunktionAufrufwenn, wird der Code im Funktionsinneren ausgeführt.

Die Funktion aufrufen kann auch als 'Funktion starten' oder 'Funktion ausführen' bezeichnet werden.

In diesem教程中, verwenden wir "Aufruf"

Funktion aufrufen

Beispiel

function myFunction(a, b) {
    return a * b;
}
myFunction(10, 2);           // wird 20 zurückgeben

Probieren Sie es selbst aus

Diese Funktionen gehören zu keinem Objekt. Aber in JavaScript gibt es stets ein Standard globales Objekt.

In HTML ist der Standard globale Objekt die HTML-Seite selbst, alle obigen Funktionen 'gehören' zur HTML-Seite.

In einem Browser ist dieses Seitenobjekt das Browserfenster. Die obigen Funktionen werden automatisch zu Fensterfunktionen.

myFunction() und window.myFunction() sind die gleiche Funktion:

Beispiel

function myFunction(a, b) {
    return a * b;
}
window.myFunction(10, 2);    // Wird auch 20 zurückgeben

Probieren Sie es selbst aus

Dies ist eine gängige Methode, um Funktionen aufzurufen, aber es ist keine gute Gewohnheit.

Globale Variablen, Methoden oder Funktionen können leicht in globalen Objekten Namenskonflikte und Lücken verursachen.

this Schlüsselwort

In JavaScript wird als this Dinge, die "haben" das aktuelle Code, beziehen sich auf das Objekt, das das aktuelle Code "hat".

this Wert, wenn er in einer Funktion verwendet wird, ist das Objekt, das die Funktion "hat".

Bitte beachten Sie this Es ist nicht eine Variable. Es gehört zum Schlüsselwort. Sie können es nicht ändern this Wert.

globale Objekt

Wenn ein Objekt ohne Besitzerobjekt aufgerufen wird,this Wert wird zum globalen Objekt.

In Webbrowsern ist das globale Objekt das Browserobjekt.

Dieses Beispiel verwendet this Wert zurückzugeben:

Beispiel

var x = myFunction();            // x wird zum window-Objekt
function myFunction() {
   return this;
}

Probieren Sie es selbst aus

Eine Funktion als globale Funktion aufrufen führt dazu this Wert wird zum globalen Objekt.

Es ist einfach, den window-Objekt als Variable zu verwenden und das Programm zum Absturz zu bringen.

Funktionen als Methoden aufrufen

In JavaScript können Sie Funktionen als Objektmethoden definieren.

Der folgende Beispiel erstellt ein Objekt (myObject), das zwei Eigenschaften (firstName und lastName) und eine Methode (fullName) hat:

Beispiel

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

Probieren Sie es selbst aus

fullName-Methode ist eine Funktion. Diese Funktion gehört zum Objekt. myObject ist der Besitzer der Funktion.

wird als this Dinge, die "haben" dieses JavaScript-Code, sind das "haben" des Objekts. In diesem Beispiel,this Wert ist myObject.

Probieren Sie es aus! Ändern Sie die fullName-Methode, um this Wert:

Beispiel

var myObject = {
    firstName: "Bill",
    lastName: "Gates",
    fullName: function () {
        return this;
    }
}
myObject.fullName();          // Rückgabewert [object Object] (Besitzerobjekt)

Probieren Sie es selbst aus

Die Aufrufung einer Funktion als Objektmethoden führt zu this Wert wird zum Objekt selbst.

Funktionen durch Funktionskonstruktor aufrufen

Wenn vor dem Funktionsaufruf new Wenn vor dem Funktionsaufruf ein Schlüsselwort verwendet wird, dann ist dies ein Konstruktoraufruf.

Es scheint, als würden Sie eine neue Funktion erstellen, aber da JavaScript-Funktionen Objekte sind, erstellen Sie实际上 ein neues Objekt:

Beispiel

// Dies ist der Funktionskonstruktor:
function myFunction(arg1, arg2) {
    this.firstName = arg1;
    this.lastName = arg2;
}
// Ein neues Objekt wurde erstellt:
var x = new myFunction("Bill", "Gates");
x.firstName;                             // wird "Bill" zurückgeben

Probieren Sie es selbst aus

Der Konstruktoraufruf erstellt ein neues Objekt. Das neue Objekt erbt Eigenschaften und Methoden von seinem Konstruktor.

Im Konstruktor this Schlüsselwörter haben keinen Wert.

this Wert wird zum neuen Objekt erstellt, wenn die Funktion aufgerufen wird.