So:
%Vor% Da JavaScript-Funktionen jedoch Variablen als Referenz erfassen, funktioniert Ihr Code nicht wie vorgesehen.
Sie müssen die innere Funktion innerhalb einer separaten Funktion definieren, so dass jede eine separate key
Variable (oder Parameter) erhält.
Zum Beispiel:
%Vor%Sie können es wie folgt verwenden:
%Vor% Sie versuchen, den globalen Namespace mit mehreren dialogbezogenen Funktionen zu verschmutzen.
Das ist eine schlechte Idee; Es ist besser, Ihre Funktionen im Namespace zu organisieren.
Wenn Sie den globalen Namespace wirklich polieren möchten, können Sie Folgendes tun:
%Vor% Dies erzeugt globale Funktionen namens createDialog
und updateDialog
.
Bei einem normalen Funktionsaufruf bezieht sich das Schlüsselwort this
auf den globalen Namespace (normalerweise das Objekt window
).
Ich denke, Sie versuchen etwas zu tun, was Sie in JavaScript nicht tun müssen. In PHP ist das Übergeben von Funktionen ein bisschen ein Kludon. In JavaScript ist es elegant und schmerzlos.
Wie planen Sie diese Funktionen später aufzurufen? Ich nehme an, dass Sie diese Funktionsnamen in den 'onclick'-Attributen fest in Ihren HTML-Code einprogrammiert haben. Es ist eine schlechte Idee, JavaScript in Ihren HTML-Code über die on*
-Attribute fest zu codieren. Wenn Sie das tun, müssen Sie Variablen im globalen Bereich erstellen (eine andere Vorgehensweise, die am besten vermieden wird). Im Browser ist das globale Objekt window
. Wenn Sie eine Eigenschaft in window
definieren, ist die Funktion global verfügbar:
Dies setzt voraus, dass Sie onclick
-Attribute in Ihrem HTML haben, die mit den Funktionsnamen übereinstimmen, die Sie erstellen.
Ein besserer Weg wäre, die Funktionen einfach so zu erstellen, wie Sie sie an die Ereignisse binden und ihnen niemals Variablen zuweisen:
%Vor%Dadurch werden sowohl Ihr JavaScript als auch Ihr HTML kleiner und sauberer.
Tags und Links javascript variables function