Tilgang til eksterne variabler i funksjoner i JavaScript

La oss se på følgende kode:

javascriptlet num = 1; // setter variabelens verdi

function func() {
  console.log(num); // skriver den ut til konsollen
}

func(); // kaller funksjonen

Som jeg nevnte tidligere, trenger ikke variabelens verdi å være før definisjonen av funksjonen, hovedpoenget er at den må være før den kalles:

javascriptfunction func() {
  console.log(num);
}

let num = 1;
func();

Egentlig er det ikke helt slik. Vår funksjon vet verdien av variabelen num selv før den kalles:

javascriptlet num = 1;

function func() {
  console.log(num); // funksjonen vet allerede at num = 1
}

Her er et mer komplekst eksempel:

javascriptlet num = 1; // på dette tidspunktet lærer funksjonen at num = 1

function func() {
  console.log(num);
}

num = 2; // på dette tidspunktet lærer funksjonen at num = 2

La oss legge til funksjonskall:

javascriptlet num = 1; // på dette tidspunktet lærer funksjonen at num = 1
func(); // skriver ut 1

function func() {
  console.log(num);
}

func(); // skriver ut 1
num = 2; // på dette tidspunktet lærer funksjonen at num = 2
func(); // skriver ut 2

Igjen: faktisk vet funksjonen verdiene av eksterne variabler, selv uten å være kalt.