Heim  >  Artikel  >  Web-Frontend  >  Kenntnisse und Anwendung von JavaScript-Funktionsaufrufen

Kenntnisse und Anwendung von JavaScript-Funktionsaufrufen

jacklove
jackloveOriginal
2018-05-07 11:04:211566Durchsuche

JavaScript-Funktionsaufrufe spielen in js eine wichtige Rolle. Dieser Artikel bietet ein detailliertes Verständnis davon.

Es gibt 4 Möglichkeiten, JavaScript-Funktionen aufzurufen.

Der Unterschied zwischen den einzelnen Methoden liegt in der Initialisierung dieser.

dieses Schlüsselwort

Im Allgemeinen zeigt dies in Javascript auf das aktuelle Objekt, wenn die Funktion ausgeführt wird.

Beachten Sie, dass es sich um ein reserviertes Schlüsselwort handelt. Sie können den Wert dieses Schlüsselworts nicht ändern.

JavaScript-Funktionen aufrufen

In den vorherigen Kapiteln haben wir gelernt, wie man Funktionen erstellt.

Der Code in der Funktion wird ausgeführt, nachdem die Funktion aufgerufen wurde.

Als Funktionsaufruf

Instanz

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

Die obige Funktion gehört zu keinem Objekt. In JavaScript ist es jedoch immer das standardmäßige globale Objekt.

Das standardmäßige globale Objekt in HTML ist die HTML-Seite selbst, daher gehört die Funktion zur HTML-Seite.

Das Seitenobjekt im Browser ist das Browserfenster (Fensterobjekt). Die oben genannten Funktionen werden automatisch zu Funktionen des Fensterobjekts.

myFunction() ist dasselbe wie window.myFunction():

Instance

function myFunction(a, b) {
    return a * b;}window.myFunction(10, 2);    // window.myFunction(10, 2) 返回 20

Dies ist ein Aufruf an eine JavaScript-Funktion Häufig verwendete Methoden, aber keine guten Programmiergewohnheiten
Globale Variablen, Methoden oder Funktionen können leicht Namenskonfliktfehler verursachen.

Globales Objekt

Wenn die Funktion nicht von ihrem eigenen Objekt aufgerufen wird, wird der Wert dieses Objekts zum globalen Objekt.

In einem Webbrowser ist das globale Objekt das Browserfenster (Fensterobjekt).

Der von dieser Instanz zurückgegebene Wert ist das Fensterobjekt:

Instanz

function myFunction() {
    return this;}myFunction();                // 返回 window 对象

Die Funktion wird aufgerufen als ein globales Objekt, das dazu führt, dass der Wert davon zum globalen Objekt wird.
Die Verwendung des Fensterobjekts als Variable kann leicht zum Absturz des Programms führen.

Funktion als Methodenaufruf

In JavaScript können Sie Funktionen als Methoden von Objekten definieren.

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

Instance

var myObject = {
    firstName:"John",    lastName: "Doe",    fullName: function () {
        return this.firstName + " " + this.lastName;    }}myObject.fullName();         // 返回 "John Doe"

fullName method is eine Funktion. Funktionen gehören zu Objekten. myObject ist der Eigentümer der Funktion.

Dieses Objekt enthält JavaScript-Code. Der Wert davon in der Instanz ist das myObject-Objekt.

Testen Sie unten! Ändern Sie die fullName-Methode und geben Sie diesen Wert zurück:

Instance

var myObject = {
    firstName:"John",    lastName: "Doe",    fullName: function () {
        return this;    }}myObject.fullName();          // 返回 [object Object] (所有者对象)

Die Funktion wird als Objektmethode aufgerufen, die den Wert von erstellt Dies wird zum Objekt selbst.

Verwenden Sie den Konstruktor, um die Funktion aufzurufen

Wenn das neue Schlüsselwort vor dem Funktionsaufruf verwendet wird, wird der Konstruktor aufgerufen.

Das sieht so aus, als würde eine neue Funktion erstellt, aber in Wirklichkeit sind JavaScript-Funktionen neu erstellte Objekte:

Instanz

// 构造函数:function myFunction(arg1, arg2) {
    this.firstName = arg1;    this.lastName  = arg2;}
 // This    creates a new objectvar x = new myFunction("John","Doe");x.firstName;                             // 返回 "John"

Der Aufruf des Konstruktors erstellt ein neues Objekt. Das neue Objekt erbt die Eigenschaften und Methoden des Konstruktors.

Das Schlüsselwort this im Konstruktor hat keinen Wert.
Der Wert hierfür wird erstellt, wenn die Funktion aufgerufen wird, um das Objekt (neues Objekt) zu instanziieren.

Eine Funktion als Funktionsmethode aufrufen

In JavaScript sind Funktionen Objekte. Eine JavaScript-Funktion hat ihre Eigenschaften und Methoden.

call() und apply() sind vordefinierte Funktionsmethoden. Zum Aufrufen von Funktionen können zwei Methoden verwendet werden, und der erste Parameter beider Methoden muss das Objekt selbst sein.

Instance

function myFunction(a, b) {
    return a * b;}myObject = myFunction.call(myObject, 10, 2);     // 返回 20

Instance

function myFunction(a, b) {
    return a * b;}myArray = [10, 2];myObject = myFunction.apply(myObject, myArray);  // 返回 20

Beide Methoden verwenden das Objekt selbst als ersten Parameter. Der Unterschied zwischen den beiden liegt im zweiten Parameter: apply übergibt ein Parameter-Array, d. h. mehrere Parameter werden zu einem Array zusammengefasst und übergeben, während call als Parameter von call übergeben wird (beginnend mit dem zweiten Parameter).

Im strengen JavaScript-Modus (strenger Modus) wird der erste Parameter beim Aufrufen der Funktion zum Wert davon, auch wenn der Parameter kein Objekt ist.

Wenn im nicht-strikten JavaScript-Modus der Wert des ersten Parameters null oder undefiniert ist, wird stattdessen das globale Objekt verwendet.

Dieser Artikel enthält eine detaillierte Erläuterung der JavaScript-Funktionsaufrufe. Weitere Lernmaterialien finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

JavaScript-Timing-Ereignisse verstehen und verwenden

JavaScript-Abschlüsse verstehen und verwenden

JavaScript-Datum (Datum) bezogene Kenntnisse und Verwendung

Das obige ist der detaillierte Inhalt vonKenntnisse und Anwendung von JavaScript-Funktionsaufrufen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn