MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

 

Obiekt Function

Predefiniowany obiekt Function określa łańcuch znaków do skompilowania jako funkcja.

Aby utworzyć obiekt Function:

nazwaObiektuFunkcji = new Function ([arg1, arg2, ... argn], cialoFunkcji)

nazwaObiektuFunkcji jest nazwą zmiennej lub własności istniejącego obiektu. Może to być również obiekt, po którym następuje zapisana małymi literami nazwa uchwytu zdarzenia, jak np. window.onerror.

arg1, arg2, ... argn są argumentami, które mają być użyte przez funkcję jako formalne nazwy argumentów. Każda z nich musi być łańcuchem znaków spełniającym zasady poprawnego identyfikatora JavaScript; przykładowo "x" lub "theForm".

cialoFunkcji jest łańcuchem znaków określającym kod JavaScript, który ma zostać skompilowany jako ciało funkcji.

Obiekty Function są przetwarzane przy każdym użyciu. Jest to mniej skutecznie niż deklarowanie funkcji i wywoływanie jej wewnątrz kodu, ponieważ zadeklarowane funkcje są kompilowane.

Oprócz definiowania funkcji w sposób opisany tutaj, możesz również użyć instrukcji function i wyrażenia funkcji. Zobacz Dokumentacja języka JavaScript 1.5, aby uzyskać więcej informacji.

Poniższy kod przypisuje funkcję do zmiennej ustawKolorTla. Funkcja ta ustawia obecny kolor tła dokumentu.

var ustawKolorTla = new Function("document.bgColor='antiquewhite'")

Aby wywołać obiekt Function, możesz określić nazwę zmiennej tak, jak gdyby była to funkcja. Poniższy kod wykonuje funkcję określoną przez zmienną ustawKolorTla:

var wyborKoloru="antiquewhite"
if (wyborKoloru=="antiquewhite") {ustawKolorTla()}

Możesz przypisać funkcję do uchwytu zdarzenia w jeden z następujących sposobów:

1. document.form1.colorButton.onclick=ustawKolorTla
2. <INPUT NAME="kolorPrzycisku" TYPE="button"
      VALUE="Zmień kolor tła"
      onClick="ustawKolorTla()">

Tworzenie zmiennej ustawKolorTla pokazane powyżej jest podobne do deklarowania następującej funkcji:

function ustawKolorTla() {
   document.bgColor='antiquewhite'
}

Przypisywanie funkcji do zmiennej jest podobne do deklarowania funkcji, są jednak pewne różnice:

  • Gdy przypisujesz funkcję do zmiennej używając var ustawKolorTla = new Function("..."), ustawKolorTla jest zmienną, dla której obecnej wartość jest odniesieniem do funkcji stworzonej za pomocą new Function().
  • Gdy tworzysz funkcję używając function ustawKolorTla() {...}, ustawKolorTla nie jest zmienną, ale nazwą funkcji.

Możesz zagnieździć funkcję wewnątrz funkcji. Zagnieżdżona (wewnętrzna) funkcja jest prywatna do zawierającej ją (zewnętrznej) funkcji:

  • Dostęp do wewnętrznej funkcji może być osiągnięty tylko przez instrukcje w funkcji zewnętrznej.
  • Funkcja wewnętrzna może używać tych samych argumentów i zmiennych, co funkcja zewnątrzna. Funkcja zewnętrzna nie może używać argumentów i zmiennych funkcji wewnętrznej.
 

Autorzy i etykiety dokumentu

 Autorzy tej strony: teoli, Mgjbot, Diablownik, Ptak82
 Ostatnia aktualizacja: teoli,