JS-zelfstudie

JS HOME JS Introductie JS Waarheen? JS-uitgang JS-verklaringen JS-syntaxis JS-opmerkingen JS-variabelen JS Let JS Const JS-operators JS Rekenen JS-opdracht JS-gegevenstypen JS-functies JS-objecten JS-evenementen JS-snaren JS String-methoden JS String zoeken JS String-sjablonen JS-nummers JS-nummermethoden JS-arrays JS-array-methoden JS-array sorteren JS-array-iteratie JS Array Const JS-datums JS-datumnotaties JS Datum Ophaalmethoden Methoden voor het instellen van JS-datum JS Math JS Willekeurig JS Booleans JS-vergelijkingen JS-voorwaarden JS-schakelaar JS Loop For JS-lus voor binnen JS Loop For Of JS-lus terwijl JS Break JS-iteraties JS-sets JS-kaarten JS Typeof JS Type conversie JS Bitwise JS RegExp JS-fouten JS-bereik JS Hijsen JS strikte modus JS dit trefwoord JS-pijlfunctie JS-lessen JS JSON JS-foutopsporing JS-stijlgids JS-best practices JS-fouten JS-prestaties JS Gereserveerde Woorden

JS-versies

JS-versies JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge JS-geschiedenis

JS-objecten

Objectdefinities Objecteigenschappen Objectmethoden Objectweergave Objectaccessoires Objectconstructeurs Objectprototypes Object-Iterables Objectsets Objectkaarten Objectreferentie

JS-functies

Functiedefinities Functieparameters: Functie-aanroep Functie-oproep: Functie Toepassen Functie Sluitingen

JS-lessen

Klas Intro Klasse Overerving Klasse Statisch

JS Asynchrone

JS-callbacks JS asynchroon JS belooft JS Async/Wachten

JS HTML DOM

DOM Intro DOM-methoden DOM-document DOM-elementen DOM HTML DOM-formulieren DOM-CSS DOM-animaties DOM-evenementen DOM-gebeurtenisluisteraar DOM-navigatie DOM-knooppunten DOM-collecties DOM-knooppuntlijsten

JS-browserstuklijst

JS-venster JS-scherm JS-locatie JS-geschiedenis JS-navigator JS pop-upwaarschuwing JS-timing JS-koekjes

JS Web API's

Introductie web-API Web Forms API Webgeschiedenis-API Webopslag-API Web Worker-API Web Fetch-API Webgeolocatie-API

JS AJAX

Ajax-intro AJAX XMLHttp Ajax-verzoek Ajax-reactie AJAX XML-bestand AJAX PHP Ajax ASP AJAX-database AJAX-toepassingen Ajax-voorbeelden

JS JSON

JSON-intro JSON-syntaxis JSON versus XML JSON-gegevenstypen JSON ontleden JSON Stringify JSON-objecten JSON-arrays JSON-server JSON PHP JSON HTML JSON JSONP

JS versus jQuery

jQuery-kiezers jQuery HTML jQuery CSS jQuery DOM

JS-graphics

JS-graphics JS Canvas JS Plotly JS Chart.js JS Google-kaart JS D3.js

JS-voorbeelden

JS-voorbeelden JS HTML DOM JS HTML-invoer JS HTML-objecten JS HTML-evenementen JS-browser JS-editor JS-oefeningen JS-quiz JS-certificaat

JS-referenties

JavaScript-objecten HTML DOM-objecten


Het JavaScript dit trefwoord


Voorbeeld

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

Wat is dit ?

Het JavaScript this-sleutelwoord verwijst naar het object waartoe het behoort.

Het heeft verschillende waarden, afhankelijk van waar het wordt gebruikt:

  • In een methode thisverwijst naar het object owner .
  • Alleen, thisverwijst naar het globale object .
  • In een functie thisverwijst naar het globale object .
  • In een functie, in strikte modus, thisis undefined.
  • In een gebeurtenis thisverwijst naar het element dat de gebeurtenis heeft ontvangen.
  • Methoden zoals call(), en apply()kunnen verwijzen thisnaar elk object .

dit in een methode

In een objectmethode thisverwijst dit naar de " eigenaar " van de methode.

In het voorbeeld bovenaan deze pagina thisverwijst het naar het persoonsobject .

Het person - object is de eigenaar van de methode fullName .

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

dit alleen

Als het alleen wordt gebruikt, is de eigenaar het Global-object, dus thisverwijst het naar het Global-object.

In een browservenster is het Global-object [object Window]:

Voorbeeld

let x = this;

 In de strikte modus verwijst , wanneer alleen gebruikt, thisook naar het Global-object [object Window]:

Voorbeeld

"use strict";
let x = this;

dit in een functie (standaard)

In een JavaScript-functie is de eigenaar van de functie de standaardbinding voor this.

Dus, in een functie, thisverwijst naar het Global object [object Window].

Voorbeeld

function myFunction() {
  return this;
}

dit in een functie (strikt)

De strikte modus van JavaScript staat geen standaardbinding toe.

Dus, wanneer gebruikt in een functie, in de strikte modus, thisis undefined.

Voorbeeld

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

dit in Event Handlers

Verwijst in HTML-gebeurtenishandlers thisnaar het HTML-element dat de gebeurtenis heeft ontvangen:

Voorbeeld

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


Object Methode Binding

In deze voorbeelden thisis het persoonsobject (het persoonsobject is de "eigenaar" van de functie):

Voorbeeld

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

Voorbeeld

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

Met andere woorden: this.firstName betekent de firstName eigenschap van dit (persoon)object.


Expliciete functiebinding

De call()en apply()-methoden zijn vooraf gedefinieerde JavaScript-methoden.

Ze kunnen beide worden gebruikt om een ​​objectmethode aan te roepen met een ander object als argument.

Je leest er meer over call()en apply()verderop in deze tutorial.

In het onderstaande voorbeeld, wanneer person1.fullName wordt aangeroepen met person2 als argument, thiswordt verwezen naar person2, zelfs als het een methode van person1 is:

Voorbeeld

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