Objektorientiertes Coden

BGrojer

Mitglied
Ich hab leider meine Probleme mit der Objektorientirung. Der Aufruf funktioniert soweit ok. Die Funktion InitCommandstack() wird aufgerufen nach dem Pageload und soll mit ein Objekt erzeugen.
Mein setInterval soll eigentlich alle paar Sekunden eine Function im Objekt aufrufen die etwas überprüft.
Wo hab ich da meinen Denkfehler?

Hier mal mein Beispiel:

Code:
function InitCommandstack()
{     
    var myCommandstack = new Commandstack();
    myCommandstack.initialize();
}    
    

function Commandstack()
{                 
    //Initialisierung des Stacks    
    this.initialize = function()
    {
        this.contentArray = new Array(4);
        this.active = true;    
        window.setInterval("checkCommandstack();", 5000);         
    }
    
    //Periodisches Aufrufen
    this.checkCommandstack = function()
    {
        if (this.active == true)
        {
            window.alert('Commandstack ist aktiviert! Es werden Daten verarbeitet!');
        }
        else
        {
            window.alert('Commandstack ist inaktiv! Es werden Daten verarbeitet!');
        }
    }    
     
    //Datenaustausch mit Interface  
    this.dataExchange = function(typ, arrayID, returnValue)
    {      
        if (typ == 1)
        {
            //Element aus dem Array nehmen, als inProzess = 1 makieren und senden via Interface
        }
        else
        {
            //Bearbeites Element zurück ins Array schreiben (returnValue), inProzess = 2
            //Aufruf Rückgabejob
        }     
    }
    
    //Elementauswahl
    this.dataSelector = function()
    {
        this.active = false;
        
        //Auswahl eines Elements aus dem Array und aufruf von
        dataExchange(1, arrayID, '');
        
        this.active = true;
    } 
    
    //Rückgabejob ausführen
    this.returnJob = function(arrayID)
    {
        //Anhand ArrayID etwas Abarbeiten mit den neuen Daten
    }
}

Danke für jede Hilfe (Hilfelink etc.)
 
Grins. Ja, das Problem ist, dass JavaScript nicht weiss, auf welches Objekt zugriffen werden muss.

Daher sollst du ein neues Membervariable namens z.B. instance anlegen.

Code:
function meineKlasse(id)
{
    this.instance = id;

    this.update = function()
    {
        alert("update");
    }

    this.start = function()
    {
        window.setInterval(this.instance + ".update()", 30);
    }
}

In deinem Fall lautet der id "myCommandstack".
 

Neue Beiträge

Zurück