Hallo,
Ich hatte mal auf einer Seite alle paar Millisekunden je 7 mal die Fenstergroesse abfragen muessen. Da ich keine Lust hatte, immer wieder kompliziert machende if() abfragen zu benutzen (da IE und NS da ja unterschiedliche Eigenschaften benutzen), speicherte ich beim Laden des Dokuments die erforderliche Methode in einer Variable und habe bei jedem Abfragen die Variable und eval() benutzt.
Methoden, also Funktionen, kann man in Variablen speichern, und zwar als Funktionsobjekte selbst, nicht als deren Name. Beziehungsweise, man legt eine neuen Referenz auf das bereits bestehende Function-Objekt an. Wenn man die Funktion dann aufrufen will, nutzt man, wie bei jedem Funktionsaufruf, den Call-Operator.
function a () { ... return wert; }
function b () { ... return wert; }
var func;
if (Browserfähigkeitenabfrage) {
func = a;
} else if (vBrowserfähigkeitenabfrage) {
func = b;
}
func kannst du dann einfach mit wert = func(); aufrufen und musst nicht jedes Mal die Browserfähigkeiten abfragen. Kein Grund für eval()! eval() macht den Code auch nicht lesbarer.
Mathias