molily: Lokale Funktionsobjekte mit variablem Namen ansprechen

Beitrag lesen

Hallo,

Verschachtelte Funktionen sind lokale Variablen. Auf das Objekt, an dem die lokalen Variablen hängen, kannst du nicht direkt zugreifen. Also ist die Ansprechweise objekt["unterobjekt"] nicht direkt möglich. Du kannst das Funktionsobjekt aber natürlich an ein anderes lokales Objekt hängen und dann über diese Schreibweise darauf zugreifen.

var meinSkript = (function() {
   function Funktionsname() {
     // Mach was
   }

window["Funktionsname"] ("DiesUndDas");
}) ();

  
Warum schreibst du var meinSkript davor? Hat die anonyme Funktion denn einen Rückabewert?  
  
~~~javascript
function bla () {  
   var lokalesObj = new Object;  
   var fname = "foo";  
   lokalesObj[fname] = function (...) {...};  
   alert(lokalesObj[fname]);  
}

Alternativ kannst du die Funktionsobjekt am äußeren Funktionsobjekt selbst speichern. Darauf greifst du mit arguments.callee zu.

var thisF = arguments.callee;
thisF[fname] = ... wie oben.

Das macht Sinn, wenn du sie außerhalb noch einmal brauchst.

Mathias