window.pipedriveLeadboosterConfig = { basis: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', versie: 2, } ;(functie () { var w = venster als (w.LeadBooster) { console.warn('LeadBooster bestaat al') } anders { w.LeadBooster = { q: [], on: functie (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: functie (n) { this.q.push({ t: 't', n: n }) }, } } })() Het trefwoord 'dit' begrijpen in JavaScript - The Codest
The Codest
  • Over ons
  • Diensten
    • Software Ontwikkeling
      • Frontend ontwikkeling
      • Backend ontwikkeling
    • Staff Augmentation
      • Frontend ontwikkelaars
      • Backend ontwikkelaars
      • Gegevensingenieurs
      • Cloud Ingenieurs
      • QA ingenieurs
      • Andere
    • Het advies
      • Audit & Consulting
  • Industrie
    • Fintech & Bankieren
    • E-commerce
    • Adtech
    • Gezondheidstechnologie
    • Productie
    • Logistiek
    • Automotive
    • IOT
  • Waarde voor
    • CEO
    • CTO
    • Leveringsmanager
  • Ons team
  • Case Studies
  • Weten hoe
    • Blog
    • Ontmoetingen
    • Webinars
    • Bronnen
Carrière Neem contact op
  • Over ons
  • Diensten
    • Software Ontwikkeling
      • Frontend ontwikkeling
      • Backend ontwikkeling
    • Staff Augmentation
      • Frontend ontwikkelaars
      • Backend ontwikkelaars
      • Gegevensingenieurs
      • Cloud Ingenieurs
      • QA ingenieurs
      • Andere
    • Het advies
      • Audit & Consulting
  • Waarde voor
    • CEO
    • CTO
    • Leveringsmanager
  • Ons team
  • Case Studies
  • Weten hoe
    • Blog
    • Ontmoetingen
    • Webinars
    • Bronnen
Carrière Neem contact op
Pijl terug KEREN TERUG
2019-09-09
Software Ontwikkeling

Het sleutelwoord 'this' begrijpen in JavaScript

Lukasz Kolko

In de meeste object-georiënteerde programmeertalen heeft het sleutelwoord 'dit' een speciale betekenis. Meestal verwijst het naar het object dat de uitvoeringscontext is (d.w.z. naar de huidige instantie van het object). We gebruiken dit bijvoorbeeld wanneer we van binnenuit naar een objecteigenschap verwijzen: we typen this.propertyName, en dan is de context het object en verwijst this ernaar.

"dit in JavaScript

In JavaScript het is ingewikkelder omdat waar deze verwijst, hangt niet alleen af van hoe de functie is gedefinieerd, maar ook van de vorm waarin deze wordt aangeroepen.

Kijk eens hoe deze werkt afhankelijk van de plaats en vorm van aanroeping.

Wereldwijde context

Gebruikt in een globale context gebonden aan het globale object, zoals raam in een webbrowser.

dit; // venster

Binnen objectmethode

Wordt gebruikt binnen een objectmethode die gebonden is aan het dichtstbijzijnde omsluitende object. Het object is de nieuwe context van de deze sleutelwoord. Merk op dat u functie () naar ES6 syntaxis leuk: () => this.context omdat het de context zal veranderen.

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

obj.fun(); // object

In dit voorbeeld met een genest object, deze verwijst nog steeds naar de dichtstbijzijnde context.

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

genestObj.child.fun(); // kind

Functie zonder context

Gebruikt binnen een functie die geen context heeft (geen object als ouder heeft) gebonden aan de globale context, zelfs als de functie is gedefinieerd binnen het object.

Merk op dat we var context in plaats van let/const context omdat laat en const de context van de variabele wijzigen. var is altijd het dichtst bij de globale uitvoeringscontext. laat en const declareer variabelen alleen in een lokaal blokbereik.

var context = "globaal";

const obj = {
  context: "object",
  funA: functie() {
    functie funB() {
      const context = "functie";
      return this.context;
    }
    return funB(); // aangeroepen zonder context
  }
};

obj.funA(); // globaal

Binnen constructorfunctie

Gebruikt binnen een functie die de constructor is van het nieuwe object dat eraan gebonden is.

var context = "globaal";

functie Obj() {
  this.context = "Obj context";
}

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

Binnen functie gedefinieerd op prototypeketen

Wordt gebruikt binnen een functie die gedefinieerd is op de prototypeketen om een object te maken dat eraan gebonden is.

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

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

Binnen oproep() en apply() functies

oproep() en toepassen() zijn JavaScript functies. Hiermee kan een object methoden van een ander object gebruiken. oproep() neemt argumenten afzonderlijk waar toepassen() neemt ze als een array.

deze is hier gebonden aan nieuwe context veranderd in oproep() en toepassen() methoden.

const objA = {
  context: "objA",
  fun: functie() {
    console.log(this.context, argumenten);
  }
};

const objB = {
  context: "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]

Binnen bind() functie

binden() is ook een JavaScript methode. Het creëert een nieuwe functie die deze ingesteld op de eerste parameter die wordt doorgegeven aan bind()**.**

const objA = {
  context: "objA",
  fun: functie() {
    console.log(this.context, argumenten);
  }
};

const objB = {
  context: "objB"
};

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

Binnen event handlers

Gebruikt in elke event handler (bijvoorbeeld, addeventListener, onclick, attachEvent), is het gebonden aan het DOM-element waaraan de gebeurtenis was gekoppeld.

document.querySelector(".foo").addEventListener("click", function() {
  this; // verwijst naar het `foo` div element
});

ES6 pijl functie

Gebruikt binnen de pijlfunctie is het altijd gebonden aan de lexicale scope. In de pijlfunctie kun je de deze op welke manier dan ook.

const globalArrowFunction = () => this;

globalArrowFunction(); // Venster

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

obj.funA(); // venster
obj.funB()(); // object
Fronented Rapport voor 2020

Lees meer:

  • De grootste uitdagingen bij het ontwikkelen van software op maat
  • Wat zijn de verschillen tussen een softwarehuis en een IT-personeelsbureau?

Verwante artikelen

Software Ontwikkeling

Bouw Toekomstbestendige Web Apps: Inzichten van The Codest's Expert Team

Ontdek hoe The Codest uitblinkt in het creëren van schaalbare, interactieve webapplicaties met geavanceerde technologieën, het leveren van naadloze gebruikerservaringen op alle platforms. Ontdek hoe onze expertise digitale transformatie en business...

DE BESTE
Software Ontwikkeling

Top 10 in Letland gevestigde bedrijven voor softwareontwikkeling

Lees meer over de beste softwareontwikkelingsbedrijven van Letland en hun innovatieve oplossingen in ons nieuwste artikel. Ontdek hoe deze technologieleiders uw bedrijf kunnen helpen verbeteren.

thecodest
Oplossingen voor ondernemingen en schaalvergroting

Essentiële Java-softwareontwikkeling: Een gids voor succesvol uitbesteden

Verken deze essentiële gids over succesvolle outsourcing Java-softwareontwikkeling om de efficiëntie te verbeteren, toegang te krijgen tot expertise en projectsucces te stimuleren met The Codest.

thecodest
Software Ontwikkeling

De ultieme gids voor outsourcing in Polen

De sterke groei van outsourcing in Polen wordt gedreven door economische, educatieve en technologische vooruitgang, die IT-groei en een bedrijfsvriendelijk klimaat stimuleert.

DeCodest
Oplossingen voor ondernemingen en schaalvergroting

De complete gids voor IT-auditmiddelen en -technieken

IT-audits zorgen voor veilige, efficiënte en compliant systemen. Lees het volledige artikel om meer te weten te komen over het belang ervan.

The Codest
Jakub Jakubowicz CTO & medeoprichter

Abonneer je op onze kennisbank en blijf op de hoogte van de expertise uit de IT-sector.

    Over ons

    The Codest - Internationaal softwareontwikkelingsbedrijf met technische hubs in Polen.

    Verenigd Koninkrijk - Hoofdkantoor

    • Kantoor 303B, 182-184 High Street North E6 2JA
      Londen, Engeland

    Polen - Lokale technologieknooppunten

    • Fabryczna kantorenpark, Aleja
      Pokoju 18, 31-564 Krakau
    • Hersenambassade, Konstruktorska
      11, 02-673 Warschau, Polen

      The Codest

    • Home
    • Over ons
    • Diensten
    • Case Studies
    • Weten hoe
    • Carrière
    • Woordenboek

      Diensten

    • Het advies
    • Software Ontwikkeling
    • Backend ontwikkeling
    • Frontend ontwikkeling
    • Staff Augmentation
    • Backend ontwikkelaars
    • Cloud Ingenieurs
    • Gegevensingenieurs
    • Andere
    • QA ingenieurs

      Bronnen

    • Feiten en fabels over samenwerken met een externe partner voor softwareontwikkeling
    • Van de VS naar Europa: Waarom Amerikaanse startups besluiten naar Europa te verhuizen
    • Tech Offshore Ontwikkelingshubs Vergelijking: Tech Offshore Europa (Polen), ASEAN (Filippijnen), Eurazië (Turkije)
    • Wat zijn de grootste uitdagingen voor CTO's en CIO's?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Gebruiksvoorwaarden website

    Copyright © 2025 door The Codest. Alle rechten voorbehouden.

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