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


Das JavaScript -Schlüsselwort this


Beispiel

const person = {
  firstName: "John",
  lastName : "Doe",
  id       : 5566,
  fullName : function() {
    return this.firstName + " " + this.lastName;
  }
};

Was ist das ?

Das JavaScript- thisSchlüsselwort bezieht sich auf das Objekt, zu dem es gehört.

Es hat unterschiedliche Werte, je nachdem, wo es verwendet wird:

  • Verweist in einer Methode thisauf das Besitzerobjekt .
  • Allein thisbezieht sich auf das globale Objekt .
  • Bezieht sich in einer Funktion thisauf das globale Objekt .
  • thisIn einer Funktion ist im strikten Modus undefined.
  • Bezieht sich in einem Ereignis thisauf das Element , das das Ereignis erhalten hat.
  • Methoden wie call()und apply()können sich thisauf jedes Objekt beziehen .

dies in einer Methode

Bezieht sich in einer Objektmethode thisauf den „ Besitzer “ der Methode.

Im Beispiel oben auf dieser Seite thisbezieht sich auf das Personenobjekt .

Das Person - Objekt ist der Besitzer der fullName- Methode.

fullName : function() {
  return this.firstName + " " + this.lastName;
}

dies allein

Bei alleiniger Verwendung ist der Eigentümer das globale Objekt, thisbezieht sich also auf das globale Objekt.

In einem Browserfenster ist das globale Objekt [object Window]:

Beispiel

let x = this;

 Im strikten Modus bezieht sich bei alleiniger Verwendung thisauch auf das globale Objekt [object Window]:

Beispiel

"use strict";
let x = this;

dies in einer Funktion (Standard)

In einer JavaScript-Funktion ist der Eigentümer der Funktion die Standardbindung für this.

Bezieht sich also in einer Funktion thisauf das globale Objekt [object Window].

Beispiel

function myFunction() {
  return this;
}

dies in einer Funktion (Strict)

Der strikte JavaScript -Modus lässt keine Standardbindung zu.

Wenn es also in einer Funktion im strikten Modus verwendet wird, thisist undefined.

Beispiel

"use strict";
function myFunction() {
  return this;
}

Dies in Ereignishandlern

Bezieht sich in HTML-Ereignishandlern thisauf das HTML-Element, das das Ereignis empfangen hat:

Beispiel

<button onclick="this.style.display='none'">
  Click to Remove Me!
</button>


Objektmethodenbindung

In diesen Beispielen thisist das Personenobjekt (Das Personenobjekt ist der "Eigentümer" der Funktion):

Beispiel

const person = {
  firstName  : "John",
  lastName   : "Doe",
  id         : 5566,
  myFunction : function() {
    return this;
  }
};

Beispiel

const person = {
  firstName: "John",
  lastName : "Doe",
  id       : 5566,
  fullName : function() {
    return this.firstName + " " + this.lastName;
  }
};

Mit anderen Worten: this.firstName bedeutet die firstName- Eigenschaft dieses (Personen-)Objekts.


Explizite Funktionsbindung

Die Methoden call()und apply()sind vordefinierte JavaScript-Methoden.

Sie können beide verwendet werden, um eine Objektmethode mit einem anderen Objekt als Argument aufzurufen.

Sie können mehr über call()und apply()später in diesem Tutorial lesen.

Im folgenden Beispiel wird beim Aufrufen von person1.fullName mit person2 als Argument thisauf person2 verwiesen, auch wenn es sich um eine Methode von person1 handelt:

Beispiel

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