Konteks van 'n ongebonde funksie in JavaScript
Laat ons kyk wat gebeur as 'n funksie
this gebruik, maar nie aan enige
element gebind is nie, soos hier:
function func() {
console.log(this);
}
func();
In hierdie geval hang die resultaat af van
of ons in 'n streng
modus is of nie. As die modus nie-streng is,
sal this 'n verwysing na
window bevat:
function func() {
console.log(this); // verwysing na venster window
}
func();
En as die modus streng is, sal this
undefined wees:
"use strict";
function func() {
console.log(this); // undefined
}
func();
Uit bogenoemde kan dit lyk asof
this in streng modus altyd
undefined sal wees. Moenie dink nie!
As jy bloot this buite 'n funksie
uitvoer, sal dit 'n verwysing na
window wees, ongeag die modus:
"use strict";
console.log(this); // in this is 'n verwysing na window
Gevolgtrekkings
Jy kan this in enige funksie skryf,
dit sal nie enige JavaScript-foute veroorsaak nie.
Maar wat presies in hierdie this sal wees,
is ongedefinieerd totdat die funksie aangeroep word.
Selfs met verskillende aanroepe van die funksie kan
this verskillende waardes aanneem. Alles hang af
van die konteks waarin die funksie aangeroep is.