window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = Fenster if (w.LeadBooster) { console.warn('LeadBooster existiert bereits') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Das Schlüsselwort 'this' in JavaScript - The Codest verstehen
Der Codest
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Branchen
    • Fintech & Bankwesen
    • E-commerce
    • Adtech
    • Gesundheitstechnik
    • Herstellung
    • Logistik
    • Automobilindustrie
    • IOT
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
Pfeil zurück ZURÜCK
2019-09-09
Software-Entwicklung

Das Schlüsselwort "this" in JavaScript verstehen

Lukasz Kolko

In den meisten objektorientierten Programmiersprachen hat das Schlüsselwort "this" eine besondere Bedeutung. Normalerweise bezieht es sich auf das Objekt, das den Ausführungskontext darstellt (d. h. auf die aktuelle Instanz des Objekts). Wir verwenden es zum Beispiel, wenn wir uns auf eine Objekteigenschaft von innen heraus beziehen: Wir geben this.propertyName ein, und dann ist der Kontext das Objekt und this bezieht sich darauf.

dieses in JavaScript

Unter JavaScript es ist komplizierter, denn wo diese hängt nicht nur davon ab, wie die Funktion definiert ist, sondern auch von der Form des Aufrufs.

Schauen Sie sich an, wie diese funktioniert je nach Ort und Form der Anrufung.

Globaler Kontext

Wird in einem globalen Kontext verwendet, der an das globale Objekt gebunden ist, wie Fenster in einem Webbrowser.

this; // Fenster

Innerhalb der Objektmethode

Wird innerhalb einer Objektmethode verwendet, die an das nächstgelegene umschließende Objekt gebunden ist. Das Objekt ist der neue Kontext der diese Schlüsselwort. Beachten Sie, dass Sie nicht das Funktion () zur ES6-Syntax fun: () => this.context denn dadurch wird der Kontext verändert.

const obj = {
  Kontext: "object",
  fun: function() {
    return this.context;
  }
};

obj.fun(); // Objekt

In diesem Beispiel mit einem verschachtelten Objekt, diese bezieht sich immer noch auf seinen engsten Kontext.

const nestedObj = {
  Kontext: "parent",
  child: {
    context: "Kind",
    fun: function() {
      return this.context;
    }
  }
};

nestedObj.child.fun(); // child

Kontextlose Funktion

Wird innerhalb einer Funktion verwendet, die keinen Kontext (kein Objekt als Elternteil) hat, der an den globalen Kontext gebunden ist, auch wenn die Funktion innerhalb des Objekts definiert ist.

Beachten Sie, dass wir var Kontext anstelle von let/const Kontext denn lassen Sie und const den von der Variable eingeschlossenen Kontext ändern. var immer dem globalen Ausführungskontext am nächsten ist. lassen Sie und const Variablen nur in einem lokalen Blockbereich deklarieren.

var context = "global";

const obj = {
  context: "object",
  funA: function() {
    Funktion funB() {
      const context = "Funktion";
      return this.context;
    }
    return funB(); // Aufruf ohne Kontext
  }
};

obj.funA(); // global

Innerhalb der Konstruktorfunktion

Wird innerhalb einer Funktion verwendet, die der Konstruktor des neuen, an sie gebundenen Objekts ist.

var context = "global";

Funktion Obj() {
  this.context = "Obj-Kontext";
}

const obj = new Obj();
obj.context; // Obj-Kontext

Innerhalb der in der Prototypenkette definierten Funktion

Wird innerhalb einer in der Prototypenkette definierten Funktion verwendet, um ein an sie gebundenes Objekt zu erzeugen.

const ProtoObj = {
  fun: function() {
    return this.name;
  }
};

const obj = Object.create(ProtoObj);
obj.name = "foo";
obj.fun(); // foo

Innerhalb Aufruf() und apply()-Funktionen

Aufruf() und apply() sind JavaScript Funktionen. Mit ihnen kann ein Objekt Methoden verwenden, die einem anderen Objekt gehören. Aufruf() nimmt Argumente getrennt auf, wobei apply() nimmt sie als Array auf.

diese ist hier an neuen Kontext gebunden, der in Aufruf() und apply() Methoden.

const objA = {
  Kontext: "objA",
  fun: function() {
    console.log(this.context, arguments);
  }
};

const objB = {
  Kontext: "objB"
};

objA.fun(1, 2); // objA, [1, 2]
objA.fun.call(objB, 1, 2, 3); // objB, [1, 2, 3]
objA.fun.apply(objB, [1, 2, 3, 4]); // objB, [1, 2, 3, 4]

Innerhalb der Funktion bind()

bind() ist ebenfalls eine JavaScript-Methode. Sie erzeugt eine neue Funktion, die Folgendes hat diese auf den ersten Parameter gesetzt, der an bind()**.**

const objA = {
  Kontext: "objA",
  fun: function() {
    console.log(this.context, arguments);
  }
};

const objB = {
  Kontext: "objB"
};

const fun = objA.fun.bind(objB, 1, 2);
fun(3, 4); // objB, [1, 2, 3, 4]

Innerhalb von Ereignisbehandlern

Wird in jedem Event-Handler verwendet (zum Beispiel, addeventListener, onclick, attachEvent), wird es an das DOM-Element gebunden, an das das Ereignis angehängt wurde.

document.querySelector(".foo").addEventListener("click", function() {
  this; // verweist auf das Div-Element "foo".
});

ES6-Pfeilfunktion

Innerhalb der Pfeilfunktion verwendet, ist sie immer an ihren lexikalischen Bereich gebunden. In der Pfeilfunktion können Sie die Funktion nicht neu zuweisen. diese in irgendeiner Weise.

const globalArrowFunction = () => this;

globalArrowFunction(); // Fenster

const obj = {
  Kontext: "object",
  funA: () => this,
  funB: function() {
    return () => {
      return this.context;
    };
  }
};

obj.funA(); // Fenster
obj.funB()(); // Objekt
Vorläufiger Bericht für 2020

Lesen Sie mehr:

  • Die größten Herausforderungen bei der Entwicklung kundenspezifischer Software
  • Was sind die Unterschiede zwischen einem Softwarehaus und einer IT-Personalvermittlungsagentur?

Ähnliche Artikel

Software-Entwicklung

Zukunftssichere Web-Apps bauen: Einblicke vom The Codest-Expertenteam

Entdecken Sie, wie sich The Codest bei der Erstellung skalierbarer, interaktiver Webanwendungen mit Spitzentechnologien auszeichnet, die nahtlose Benutzererfahrungen auf allen Plattformen bieten. Erfahren Sie, wie unsere Expertise die digitale Transformation und...

DAS SCHÖNSTE
Software-Entwicklung

Top 10 Softwareentwicklungsunternehmen in Lettland

Erfahren Sie in unserem neuesten Artikel mehr über die besten Softwareentwicklungsunternehmen Lettlands und ihre innovativen Lösungen. Entdecken Sie, wie diese Technologieführer Ihr Unternehmen voranbringen können.

thecodest
Enterprise & Scaleups Lösungen

Grundlagen der Java-Softwareentwicklung: Ein Leitfaden für erfolgreiches Outsourcing

Entdecken Sie diesen wichtigen Leitfaden zum erfolgreichen Outsourcing der Java-Softwareentwicklung, um die Effizienz zu steigern, auf Fachwissen zuzugreifen und den Projekterfolg mit The Codest voranzutreiben.

thecodest
Software-Entwicklung

Der ultimative Leitfaden für Outsourcing in Polen

Der Anstieg des Outsourcings in Polen wird durch wirtschaftliche, bildungspolitische und technologische Fortschritte angetrieben, die das IT-Wachstum und ein unternehmensfreundliches Klima fördern.

TheCodest
Enterprise & Scaleups Lösungen

Der vollständige Leitfaden für IT-Audit-Tools und -Techniken

IT-Audits gewährleisten sichere, effiziente und gesetzeskonforme Systeme. Erfahren Sie mehr über ihre Bedeutung, indem Sie den vollständigen Artikel lesen.

Der Codest
Jakub Jakubowicz CTO & Mitbegründer

Abonnieren Sie unsere Wissensdatenbank und bleiben Sie auf dem Laufenden über das Fachwissen aus dem IT-Sektor.

    Über uns

    The Codest - Internationales Software-Unternehmen mit technischen Zentren in Polen.

    Vereinigtes Königreich - Hauptsitz

    • Büro 303B, 182-184 High Street North E6 2JA
      London, England

    Polen - Lokale Tech-Hubs

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Warszawa, Polen

      Der Codest

    • Startseite
    • Über uns
    • Dienstleistungen
    • Fallstudien
    • Gewusst wie
    • Karriere
    • Wörterbuch

      Dienstleistungen

    • IT-Beratung
    • Software-Entwicklung
    • Backend-Softwareentwicklung
    • Frontend-Softwareentwicklung
    • Staff Augmentation
    • Backend-Entwickler
    • Cloud-Ingenieure
    • Daten-Ingenieure
    • Andere
    • QS-Ingenieure

      Ressourcen

    • Fakten und Mythen über die Zusammenarbeit mit einem externen Softwareentwicklungspartner
    • Aus den USA nach Europa: Warum entscheiden sich amerikanische Start-ups für eine Verlagerung nach Europa?
    • Tech Offshore Development Hubs im Vergleich: Tech Offshore Europa (Polen), ASEAN (Philippinen), Eurasien (Türkei)
    • Was sind die größten Herausforderungen für CTOs und CIOs?
    • Der Codest
    • Der Codest
    • Der Codest
    • Privacy policy
    • Website terms of use

    Urheberrecht © 2025 von The Codest. Alle Rechte vorbehalten.

    de_DEGerman
    en_USEnglish sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek de_DEGerman