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