Funktion som variabel i JavaScript
Så, i föregående lektion fick vi reda på, att genom att referera till en funktion utan parenteser, får vi dess källkod.
Egentligen är det mycket mer intressant. I JavaScript, till skillnad från andra språk, är funktioner lika variabelvärden som siffror, strängar och arrayer.
Låt oss titta på ett exempel. Låt oss säga att vi
har, till exempel, funktionen func:
function func() {
console.log('!');
}
Egentligen har vi ingen funktion func.
Vi har en variabel func som lagrar
funktionens källkod i sig.
Vi kan till exempel skriva över variabeln
func med något annat, till exempel
en sträng. I det här fallet kommer funktionen func
inte längre att vara en funktion, utan en sträng.
Se exemplet:
function func() {
console.log('!');
}
func(); // skriver ut '!'
func = 'string'; // skriver över variabeln func
console.log(func); // skriver ut 'string'
Skapa en funktion func som
returnerar via return någon sträng.
Skriv ut resultatet av funktionen func
i konsolen.
Skriv ut källkoden för funktionen func
i konsolen.
Sätt variabeln func till talet 123,
och skriv därmed över funktionen från denna variabel.
Skriv ut variabelns func nya värde
i konsolen.