lehrkraefte:blc:informatik:ffprg1-2023:js-no-globals

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
lehrkraefte:blc:informatik:ffprg1-2023:js-no-globals [2023/02/16 09:02] – created Ivo Blöchligerlehrkraefte:blc:informatik:ffprg1-2023:js-no-globals [2023/02/17 07:07] (current) – [Ohne globale Variablen] Ivo Blöchliger
Line 1: Line 1:
 +====== Closures ======
 +Wird in JavaScript eine //innere Funktion// innerhalb einer //äusseren Funktion// definiert, erhält die innere Funktion Zugriff auf die Variablen der äusseren Funktion. Damit können globale Variablen umgangen werden, und man nutzt stattdessen die lokalen Variablen einer einzigen äusseren Funktion.
  
 +Allerdings können dann im HTML-Code keine Funktionen direkt aufgerufen werden, sondern die Event-Handler müssen vom JavaScript-Code den Element hinzugefügt werden.
 +
 +In depth: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures
 +
 +====== Ohne globale Variablen ======
 +<WRAP todo>
 +Studieren Sie folgendes Beispiel: {{lehrkraefte:blc:informatik:ffprg1-2023:05-no-globals.zip}}
 +</WRAP>
 +
 +Hinweis:
 +
 +Der ''load'' Event vom ''window'' ist nicht unbedingt die effizienteste, aber die einfachste Lösung. Gewisse Dinge könnten schon erledigt werden, wenn das DOM geladen ist (''load'' Event vom ''document''). Es kann aber sein, dass dieser Event feuert, bevor der Handler registriert wurde, was dann dazu führt, dass der Code nicht ausgeführt wird.