JavaScript: Bei der Zuweisung einer anonymen Funktion an eine variable, Funktion return Wert nicht übergeben, sondern die Funktion als string
Ich versuche zu lernen von JavaScript, aber ich bin gekommen, über eine Hürde. Wenn die Antwort ist klar und erreichbar durch eine einfach Suche ich entschuldige mich im Voraus. Ich bin ein Neuling auf Programmierung und JavaScript, und nicht sicher ist, welche Linie der Untersuchung zu Folgen.
Im folgenden code die Funktion nimmt Werte aus einem HTML-Formular, einige Verarbeitung und sendet Sie zurück. Getestet hab ich die input-und output-Prozess-und es funktioniert.
function foo() {
var x = parseInt(document.formdata.fieldone.value);
var y = parseFloat(document.formdata.fieldtwo.value);
if (isNaN(y))
{ var z = x; }
else
{ var z = function(x, y) {
if ((y * (x / 100)) < 1) {
return (x + Math.ceil(y * (x / 100))); }
else if ((y * (x / 100)) > 1) {
return (x + Math.round(y * (x / 100))); }
else {
return 0; } } }
var bar = document.getElementById("output");
bar.innerHTML = z; }
Das problem ist, wenn der else-Zweig der bedingten Anweisung zu verarbeiten versucht, der anonymen Funktion, in der return Wert nicht zugewiesen, sondern die Gesamtheit der Funktion als string. Das heißt, die folgenden erscheint auf der HTML-Seite:
Funktion (x, y) { if ((y * (x /100)) < 1) { return (x + Math.ceil(y * (x /100))); } else if ((y * (x /100)) > 1) { return (x + Math.round(y * (x /100))); } else { return 0; } }
Getestet hab ich den code in den Chrome-und Firefox-und das Ergebnis ist das gleiche.
Jede Hilfe ist willkommen und danke Ihnen im Voraus.
InformationsquelleAutor Omega | 2010-02-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie rufen Sie die Funktion übergeben Sie zwei Argumente, weil sonst die
z
variable nur speichern Sie einen Verweis auf diese Funktion, aber es wird nicht, es zu bewerten:Beachten Sie, dass
(x, y)
innerhalb der anonymen Funktion sind nicht das gleiche wie die Argumente am Ende, die entsprechen den zwei Variablen deklariert, die zu Anfang derfoo
Funktion.InformationsquelleAutor Darin Dimitrov