Gunnar Bittersmann: Anfängerfragen zum Thema Funktionen in JS

Beitrag lesen

@@Roadster:

nuqneH

function closeinfoscreen()
{var infoscreen = document.getElementById("infoscreen");
infoscreen.style.display = "none";};

  
`var infoscreen = document.getElementById("infoscreen")`{:.language-javascript} sollte außerhalb der Funktion stehen. Wenn die Funktion mehrfach aufgerufen wird, würde jedesmal das Element "infoscreen" im DOM gesucht werden, obwohl es immer dasselbe ist.  
  
  

> Was passiert, wenn die Funktion ausgeführt ist, das heißt, wenn ich das Buch gelesen habe?  
>   
> Müsste ich das Buch dann nicht wieder zurück ins Regal stellen, sprich die Funktion per Befehl für beendet erklären, damit sie nicht im Speicher bleibt und dessen Kapazität beansprucht?  
  
Ja, der Funktionscode bleibt erhalten und die Funktion kann immer wieder aufgerufen werden.  
  
Anders sieht es aus, wenn du die Funktion als Variable definierst:  
  
~~~javascript
var closeinfoscreen = function ()  
{  
    /* … */  
}

(Im Gegensatz zu function closeinfoscreen() { /* … */ } muss das aber vor dem ersten Aufruf der Funktion stehen.)

Wenn du später closeinfoscreen = null setzt, ist die Funktion nicht mehr verfügbar. Ich nehme an, dass der Garbage-Collector auch den Code aus dem Speicher schmeißt. (Man korrigiere mich, falls dem nicht so sein sollte.)

Qapla'

--
„Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)