JS-Tutorial

JS-HAUS JS-Einführung JS Wohin JS-Ausgabe JS-Anweisungen JS-Syntax JS-Kommentare JS-Variablen JS Let JS Konst JS-Operatoren JS-Arithmetik JS-Aufgabe JS-Datentypen JS-Funktionen JS-Objekte JS-Ereignisse JS-Strings JS-String-Methoden Suche nach JS-Strings JS-String-Vorlagen JS-Nummern JS-Zahlenmethoden JS-Arrays JS-Array-Methoden JS-Array-Sortierung JS-Array-Iteration JS-Array-Konstante JS-Daten JS-Datumsformate JS Date Get-Methoden JS-Datumssatzmethoden JS Math JS Zufällig JS Boolesche Werte JS-Vergleiche JS-Bedingungen JS-Schalter JS-Schleife für JS-Schleife für In JS-Schleife für Of JS-Schleife While JS Pause JS-Iterables JS-Sets JS-Karten JS Typeof JS-Typkonvertierung JS Bitweise JS RegExp JS-Fehler JS-Bereich JS Heben Strenger JS-Modus JS dieses Schlüsselwort JS-Pfeilfunktion JS-Klassen JS JSON JS-Debugging JS-Styleguide JS Best Practices JS-Fehler JS-Leistung JS Reservierte Wörter

JS-Versionen

JS-Versionen JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge JS-Geschichte

JS-Objekte

Objektdefinitionen Objekteigenschaften Objektmethoden Objektanzeige Objektzugriffsmethoden Objektkonstruktoren Objekt-Prototypen Objekt-Iterables Objektsätze Objektkarten Objektreferenz

JS-Funktionen

Funktionsdefinitionen Funktionsparameter Funktionsaufruf Funktionsaufruf Funktion anwenden Funktionsschließungen

JS-Klassen

Klasse Einführung Klassenvererbung Klasse statisch

JS asynchron

JS-Rückrufe JS asynchron JS verspricht JS Async/Warten

JS-HTML-DOM

DOM-Einführung DOM-Methoden DOM-Dokument DOM-Elemente DOM-HTML DOM-Formulare DOM-CSS DOM-Animationen DOM-Ereignisse DOM-Ereignis-Listener DOM-Navigation DOM-Knoten DOM-Sammlungen DOM-Knotenlisten

Stückliste des JS-Browsers

JS-Fenster JS-Bildschirm JS-Standort JS-Geschichte JS-Navigator JS-Popup-Warnung JS-Timing JS-Cookies

JS-Web-APIs

Web-API-Einführung Web Forms-API Webprotokoll-API Webspeicher-API Web Worker-API Web-Fetch-API Web-Geolocation-API

JS AJAX

AJAX-Einführung AJAX-XMLHttp AJAX-Anfrage AJAX-Antwort AJAX-XML-Datei AJAX-PHP AJAX ASP AJAX-Datenbank AJAX-Anwendungen AJAX-Beispiele

JS JSON

JSON-Einführung JSON-Syntax JSON vs. XML JSON-Datentypen JSON-Parsing JSON-Stringify JSON-Objekte JSON-Arrays JSON-Server JSON-PHP JSON-HTML JSON JSONP

JS vs. jQuery

jQuery-Selektoren jQuery-HTML jQuery-CSS jQuery-DOM

JS-Grafik

JS-Grafik JS-Leinwand JS Plotly JS Chart.js JS Google-Diagramm JS D3.js

JS-Beispiele

JS-Beispiele JS-HTML-DOM JS-HTML-Eingabe JS-HTML-Objekte JS-HTML-Ereignisse JS-Browser JS-Editor JS-Übungen JS-Quiz JS-Zertifikat

JS-Referenzen

JavaScript-Objekte HTML-DOM-Objekte


JavaScript -Funktionsaufruf


Der Code in einem JavaScript functionwird ausgeführt, wenn „etwas“ ihn aufruft.


Aufruf einer JavaScript-Funktion

Der Code innerhalb einer Funktion wird nicht ausgeführt, wenn die Funktion definiert wird .

Der Code innerhalb einer Funktion wird ausgeführt, wenn die Funktion aufgerufen wird .

Es ist üblich, den Begriff „ eine Funktion aufrufen “ anstelle von „ eine Funktion aufrufen “ zu verwenden.

Es ist auch üblich zu sagen „eine Funktion aufrufen“, „eine Funktion starten“ oder „eine Funktion ausführen“.

In diesem Tutorial verwenden wir invoke , da eine JavaScript-Funktion aufgerufen werden kann, ohne aufgerufen zu werden.


Aufrufen einer Funktion als Funktion

Beispiel

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

Die obige Funktion gehört zu keinem Objekt. Aber in JavaScript gibt es immer ein globales Standardobjekt.

In HTML ist das standardmäßige globale Objekt die HTML-Seite selbst, also „gehört“ die obige Funktion zur HTML-Seite.

In einem Browser ist das Seitenobjekt das Browserfenster. Die obige Funktion wird automatisch zu einer Fensterfunktion.

myFunction() und window.myFunction() ist dieselbe Funktion:

Beispiel

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

Dies ist eine übliche Methode zum Aufrufen einer JavaScript-Funktion, aber keine sehr gute Vorgehensweise.
Globale Variablen, Methoden oder Funktionen können leicht Namenskonflikte und Fehler im globalen Objekt erzeugen.



Das Schlüsselwort this

In JavaScript ist das Ding namens this, das Objekt, das den aktuellen Code „besitzt“.

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

Beachten Sie, dass thisdies keine Variable ist. Es ist ein Schlüsselwort. Sie können den Wert von nicht ändern this.

Tipp: Lesen Sie mehr über das thisSchlüsselwort bei JS this Keyword .


Das globale Objekt

Wenn eine Funktion ohne Eigentümerobjekt aufgerufen wird, wird der Wert von this zum globalen Objekt.

In einem Webbrowser ist das globale Objekt das Browserfenster.

Dieses Beispiel gibt das Fensterobjekt als Wert von zurück this:

Beispiel

let x = myFunction();            // x will be the window object

function myFunction() {
  return this;
}

Das Aufrufen einer Funktion als globale Funktion bewirkt, dass der Wert davon das globale Objekt ist.
Die Verwendung des Fensterobjekts als Variable kann Ihr Programm leicht zum Absturz bringen.


Aufrufen einer Funktion als Methode

In JavaScript können Sie Funktionen als Objektmethoden definieren.

Das folgende Beispiel erstellt ein Objekt ( myObject ) mit zwei Eigenschaften ( firstName und lastName ) und einer Methode ( fullName ):

Beispiel

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

Die Methode fullName ist eine Funktion. Die Funktion gehört zum Objekt. myObject ist der Eigentümer der Funktion.

Das Ding namens thisist das Objekt, das den JavaScript-Code „besitzt“. In diesem Fall ist der Wert this von myObject .

Probier es aus! Ändern Sie die Methode fullName so, dass sie den Wert von zurückgibt this:

Beispiel

const myObject = {
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this;
  }
}

// This will return [object Object] (the owner object)
myObject.fullName();

Das Aufrufen einer Funktion als Objektmethode bewirkt, dass der Wert von this das Objekt selbst ist.


Aufruf einer Funktion mit einem Funktionskonstruktor

Wenn einem Funktionsaufruf das Schlüsselwort vorangestellt ist new, handelt es sich um einen Konstruktoraufruf.

Es sieht so aus, als würden Sie eine neue Funktion erstellen, aber da JavaScript-Funktionen Objekte sind, erstellen Sie tatsächlich ein neues Objekt:

Beispiel

// This is a function constructor:
function myFunction(arg1, arg2) {
  this.firstName = arg1;
  this.lastName  = arg2;
}

// This creates a new object
const myObj = new myFunction("John", "Doe");

// This will return "John"
myObj.firstName;

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

Das thisSchlüsselwort im Konstruktor hat keinen Wert.
Der Wert von thisist das neue Objekt, das erstellt wird, wenn die Funktion aufgerufen wird.