CJay: Variablen Value anfordern!

Hallo Forum;D

Meine Frage bezieht sich auf Methoden.
und zwar wenn ich eine Methodenaufrufe z.b irgendeinefunction(value)
Wird eine Value an die Methode geschickt.
Ist es möglich , dass eine Methode durch While schleifen etc. erneut den wert der Value nach einer Bestimmten zeit erneut abfragen kann wenn sie global festgelegt ist?
Ich möchte dies an einer meiner Ladebalken machen um eine einfache function aufzurufen die sich solange ausführt bis 100% erreicht sind.
z.B ladebalken(prozent).
oder komme ich um eine setInterval bzw. setTimeout nicht rum ?

  1. Würdest du dir die Mühe machen, dein Problem nochmal verständlich zu formulieren?
    Ich habe nämlich kein Wort verstanden.

    1. Wenn ich eine Funktion aufrufe irgendeinefunction(_irgendeinevalue)
      ist _irgendeinevalue die variable.
      Kann die Funktion irgendeinefunction() die dar durch aufgerufen wurde irgendwie überprüfen ob sich _irgendeinevalue verändert hat ohne das ich die function ein weiteres mal aufrufen muss.

      Ich dachte nur an arguments.caller.value oder so aber das ist ja Schwachsinn.

      1. Wenn ich eine Funktion aufrufe irgendeinefunction(_irgendeinevalue)
        ist _irgendeinevalue die variable.
        Kann die Funktion irgendeinefunction() die dar durch aufgerufen wurde irgendwie überprüfen ob sich _irgendeinevalue verändert hat ohne das ich die function ein weiteres mal aufrufen muss.

        Also _irgendeinvalue ist ja nichts anderes als ein Parameter. Parameter existieren nur im Geltungsbereich ihrer eigenen Funktion, weswegen es unmöglich ist, den Wert von außen zu ändern.

        Falls _irgendeinvalue eine Referenz auf ein Objekt ist, besteht zwar theoretisch die Möglichkeit, dass Eigenschaften dieses Objekts asynchron geändert werden, jedoch nicht _während_ die Funktion ausgeführt wird.

        Deswegen ist dein Vorhaben, naja, nicht gerade sinn-behaftet.

        Du kannst allerdings mit accessor-Methoden direkt auf Ändern von Eigenschaften reagieren und dann deine Methode aufrufen.

          
        var obj1 = {};  
          
        Object.defineProperty( obj1, 'foo', {  
           set : _irgendeinefunction  
        });  
          
        obj1.foo = 5; // Schwups wird irgendeinefunction aufgerufen  
        
        
        1. Okay danke!
          Hat mir weitergeholfen ;D

      2. Wenn ich eine Funktion aufrufe irgendeinefunction(_irgendeinevalue)
        ist _irgendeinevalue die variable.
        Kann die Funktion irgendeinefunction() die dar durch aufgerufen wurde irgendwie überprüfen ob sich _irgendeinevalue verändert hat ohne das ich die function ein weiteres mal aufrufen muss.

        Die Änderungen von Variablen/Objekteigenschaften kannst du in JavaScript (ECMAScript 5) nicht so einfach überwachen. Je nachdem, was du eigentlich vorhast, gibt es verschiedene Lösungen:

        • Mittels setTimeout/setInterval regelmäßig den Wert prüfen (unschön)
        • ECMAScript 5 Setter verwenden. Beim Setzen einer Objekteigenschaft benachrichtigst du alle, die sich dafür interessieren, manuell.
        • Das ist letztlich das Observer-Patterns und dafür gibt es allgemeine Implementierungen wie beispielsweise Backbone.Models, die mit change-Events arbeiten und auch in Browsern funktionieren, die keine ECMAScript-5-Setter unterstützen.
        • Für kommende Versionen von ECMAScript sind native Observer mit Object.observe() geplant.

        Grüße,
        Mathias