Deo zbornika Napredni Javaskript

Funkcija kao objekat

U Javascriptu, funkcije su zapravo objekti, koji imaju svojstva i metode kao i ostali objekti. Ono što ih razlikuje od ostalih objekata je što se funkcije mogu pozivati.

Ugrađena svojstva funkcije

Kao i drugi objekti, funkcije imaju svojstvo constructor koje sadrži reference na konstruktor funkciju Function():

function funkcija(a) {
  return a
}

console.log(funkcija.constructor)

Funkcije sadrže i svojstvo length, koje sadrži broj parametara koji funkcija očekuje:

function funkcija(a, b, c) {
  return a + b + c
}

console.log(funkcija.length)

Ugrađeni metodi funkcije

Objekti funkcije, kao potomci najvišeg nadređenog objekta, dobijaju podrazumevane metode, kao što je toString(). Kada se metod toString() pozove na funkciji, vraća izvorni kod:

function funkcija(a, b, c) {
  return a + b + c
}

console.log(funkcija.toString())

Ako pozovemo metodu toString() na nekoj ugrađenoj funkciji, dobićemo [native code], umesto tela funkcije, odnosno nećemo moći da vidimo izvorni kod.

Literatura

  • MDN, Functions
  • Ved Antani, Stojan Stefanov, Objektno-orjentisan JavaScript, Beograd, 2017.