Wilfried Polenz wrote:
Quote:
eine Webseite benötigt mehrere JS-Bibliotheken,
in der Lib1.js ist folgende Funktion codiert :
function M1()
{
alert(' das ist M1 ');
S= subfunktion1(); |
`S' ist nicht deklariert, es wird daher auf eine Eigenschaft eines Objekts
in der Scope Chain zugegriffen, die Eigenschaft ggf. hinzugefügt. Das
Objekt kann, muss aber nicht, das globale Objekt sein, und ist daher
fehlerträchtig: alle Bezeichner sollten deklariert werden.
Quote:
//das geht, aber mehr auch nicht
function subfunktion1()
{
alert(' das ist subfunktion1 in M1');
return(S); |
Das ergibt keinen Sinn. Zu diesem Zeitpunkt hat `S' keinen definierten
Wert, da der Rückgabewert von subfunktion1() erst dann `S' in M1()
zugewiesen wird, wenn der Ausführungskontext von subfunktion1() erfolgreich
verlassen wurde.
Überflüssig. Jede Funktion, die explizit keinen Wert zurückliefert, liefert
`undefined'. Das ist auch bei einer return-Anweisung ohne Parameter so.
Etwas mehr Pretty Printing täte Deinem Code gut.
Quote:
[...]
//in der Lib2.js soll jetzt subfunktion1() gerufen werden :
document.write("<script type='text/javascript' src='./Lib1.js'></script>");
//hiermit soll dafür gesorgt werden, das der Leistungsumfang von Lib1.js
in Lib2.js bekannt ist. |
Das kann ebenfalls nicht funktionieren. Wenn überhaupt, wird das
script-Element für Lib1.js *nach* dem aktuellen script-Element hinzugefügt,
da ja das aktuelle script-Element (für Lib2.js) bereits geparst wurde.
Wie ich schon schrieb, lassen sich Abhängigkeiten auf diese Weise nicht
auflösen, sondern entweder manuell oder mit einem Script (serverseitig ist
das am zuverlässigsten), welches beide Script-Elemente entsprechend einer
benutzerdefinierten Abhängigkeitsmatrix in der richtigen Reihenfolge einbindet.
PointedEars
--
Anyone who slaps a 'this page is best viewed with Browser X' label on
a Web page appears to be yearning for the bad old days, before the Web,
when you had very little chance of reading a document written on another
computer, another word processor, or another network. -- Tim Berners-Lee