molily: JavaScript: Objekte und Kontext: Unlogischer Fehler

Beitrag lesen

Hallo,

  1. Alle Funktionsdeklarationen innerhalb des Funktionskörpers erzeugen Eigenschaften beim Variablenobjekt.

Der Punkt ist sogar sehr praktisch:

function f () {  
   inner();  
   function inner () { ... }  
}  
f();

Hier spielt die Reihenfolge keine Rolle.

Allerdings spielt sie eine Rolle, wenn man Funktionsausdrücken notiert:

function K () {  
   var inner = function () { ... };  
   this.method = function () { ... };  
  
   inner();  
   this.method();  
}  
new K();

Anders herum ginge es nicht. Die Regel gilt halt nur für Funktionsdeklarationen.

Mathias