tilbage til lektionen

Kald i et array-kontekst

vigtighed: 5

Hvad er resultatet? Hvorfor?

let arr = ["a", "b"];

arr.push(function() {
  alert( this );
});

arr[2](); // ?

Kaldet arr[2]() er syntaktisk den gode gamle obj[method](), hvor arr spiller rollen som obj, og 2 spiller rollen som method.

Så vi har et kald af funktionen arr[2] som en objektmetode. Naturligvis modtager den this, der refererer til objektet arr og udskriver arrayet:

let arr = ["a", "b"];

arr.push(function() {
  alert( this );
})

arr[2](); // a,b,function(){...}

Arrayet har 3 værdier: oprindeligt havde det to, plus funktionen. Når vi kalder arr[2](), så er this i funktionen lig med arr, og det udskrives som “a,b,function(){…}”.