Das Schlüsselwort this bezieht sich auf den Wert des Objekts, das zum Zeitpunkt des Aufrufs an die Funktion gebunden ist. Der Wert ist also unterschiedlich, je nachdem, ob eine Funktion als Methode, als eigenständige Funktion oder als Konstruktor aufgerufen wird.
Wenn eine Funktion aufgerufen wird, wird im Hintergrund eine Instanz des Schlüsselworts this als Verweis auf das Objekt erstellt, das diese Funktion enthält. Dadurch wird innerhalb des Gültigkeitsbereichs Zugriff auf die darin definierten Eigenschaften und Methoden gewährt.
Die Arbeit mit this ähnelt in gewisser Weise der Arbeit mit einer Variablen, die mit const deklariert wurde. Wie eine Konstante kann this nicht entfernt und sein Wert nicht neu zugewiesen werden. Die Methoden und Eigenschaften des Objekts, das das this-Keyword enthält, können jedoch geändert werden.
Globale Bindung
Außerhalb einer Funktion oder des Kontexts eines Objekts bezieht sich this auf das globalThis-Attribut, das in den meisten JavaScript-Umgebungen eine Referenz auf das globale Objekt ist. Im Kontext eines Scripts, das in einem Webbrowser ausgeführt wird, ist das window-Objekt das globale Objekt:
this;
> Window {0: Window, window: Window, self: Window, document: document, name: '', location: Location, ...}
In Node.js ist globalThis das global-Objekt:
$ node
Welcome to Node.js v20.10.0.
Type ".help" for more information.
> this
<ref *1> Object [global] {
...
}
Außerhalb des strengen Modus bezieht sich this auch auf das globale Objekt in einer eigenständigen Funktion, da das übergeordnete Window das Objekt ist, dem diese Funktionen „zugewiesen“ sind.
function myFunction() {
console.log( this );
}
myFunction();
> Window {...}
(function() {
console.log