Funktio muuttujana JavaScriptissä
Siis, edellisessä oppitunnissa havaitsimme, että viitattaessa funktioon ilman pyöreitä sulkeita, saamme sen lähdekoodin.
Itse asiassa kaikki on paljon mielenkiintoisempaa. JavaScriptissä, toisin kuin muissa kielissä, funktiot ovat samankaltaisia muuttujaarvoja kuin numerot, merkkijonot ja taulukot.
Katsotaanpa esimerkkiä. Olkoon meillä
esimerkiksi funktio func:
function func() {
console.log('!');
}
Oikeastaan meillä ei ole funktiota func.
Meillä on muuttuja func, joka tallentaa
funktion lähdekoodin.
Voimme esimerkiksi ylikirjoittaa muuttujan
func jollain muulla, esimerkiksi
merkkijonolla. Tässä tapauksessa funktio func
ei enää ole funktio, vaan merkkijono.
Katso esimerkki:
function func() {
console.log('!');
}
func(); // tulostaa '!'
func = 'string'; // ylikirjoitetaan muuttuja func
console.log(func); // tulostaa 'string'
Tee funktio func, joka
palauttaa return:illa jonkin merkkijonon.
Tulosta funktion func toiminnan tulos
konsoliin.
Tulosta funktion func lähdekoodi
konsoliin.
Tallenna muuttujaan func luku 123,
ylikirjoittaen näin funktion tästä muuttujasta.
Tulosta muuttujan func uusi arvo
konsoliin.