Frank Hoppe: Definition einer lokalen Variable verhindern

Ich habe eine Funktion, die ständig aufgerufen wird. Dabei habe ich das Problem, das die Variable verzoegerung definiert werden muß, aber nicht NEU definiert werden darf. Die erste Bedingung (false) darf nur eintreten, wenn die Variable noch nicht auf true gesetzt wurde. Durch die Definition (var verzoegerung) wird die Variable aber immer wieder auf false gesetzt:

  
var verzoegerung;  
if(verzoegerung != true) duration = duration + 2000;  
else verzoegerung = true;  

Die Variable verzoegerung darf nur in dieser Funktion gültig sein! Lasse ich die definition weg, gibt es einen JS-Fehler. Wie kann ich trotzdem die Neudefinition verhindern?

  1. Hi,

    Ich habe eine Funktion, die ständig aufgerufen wird. Dabei habe ich das Problem, das die Variable verzoegerung definiert werden muß, aber nicht NEU definiert werden darf.

    Lokale Variablen werden bei jedem Aufruf einer Funktion neu angelegt.

    Die Variable verzoegerung darf nur in dieser Funktion gültig sein! Lasse ich die definition weg, gibt es einen JS-Fehler. Wie kann ich trotzdem die Neudefinition verhindern?

    Dein Vorhaben ist widersprüchlich in sich - entweder willst du eine lokale Variable, die jeweils beim Funktionsaufruf neu angelegt wird, oder eine Variable, die über die Funktion hinaus besteht.

    Entweder nutzt du eine globale Variable (bzw. eine in einem höheren Scope als dem der Funktion), oder du legst die Variable als Eigenschaft des Funktionsobjektes an (das simuliert in etwa das aus anderen Sprachen bekannte Konzept statischer Eigenschaften).

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Danke! Statische Variablen sind also in JS nicht möglich. Bevor ich mich mit Funktionsobjekten beschäftige, mache ich lieber was Globales draus.