molily: Javascript Variablen über Laufzeit speichern ?

Beitrag lesen

Wie kann ich in Javascript dafür sorgen, das beim OnClick die Variable this.windows dauerhaft mit dem Objekt belegt ist und nicht jedesmal wieder durch new windowManager() und this.windows = new Array() ;  geleert wird ?

Indem du nicht jedes Mal einen neuen windowManager erzeugst. Wenn du den Code an dieser Stelle nicht ausführen willst, dann schreibe ihn nicht dorthin. ;)

Beim Erzeugen eines windowManagers initialisierst du ihn mit einer leeren Liste. Wenn du immer neue windowManager-Instanzen erzeugst, bekommst du immer wieder eine neue, leere Fensterliste.

function querer() {
    var module ;
    var action ;

Sollten diese Variablen nicht eher Parameter der querer-Konstruktorfunktion sein?

this.run = function ()
    {
        this.action = action ;
        this.module = module ;

Wo bekommen action und module Werte zugewiesen?

this.windowManager = new windowManager() ;

Anscheinend willst du eher folgendes:

if (!this.windowManager) {  
  this.windowManager = new windowManager();  
}

Sonst wird der vorhandene windowManager immer wieder mit einem neuen, leeren überschrieben.

Alternative: Du erzeugst this.windowManager *einmal* bereits im querer -Konstruktor, nicht erst in der run-Methode. Die run-Methode greift dann nur auf den vorhandenen windowManager zu.

(Dann musst du die querer-Instanz aber auch wiederverwenden.)

function windowManager ()
{
    this.windows = new Array() ;

Dies ist kein Array, sondern ein Hash. Lies dir mal <http://de.selfhtml.org/javascript/objekte/array.htm#assoziative_arrays@title=assoziative Arrays (gibt es in JavaScript nicht)> durch.

Du solltest hier besser ein Object-Literal {} verwenden.

Mathias