• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Rückgabewert einer Funktion als Parameter in einer anderen Funktion nutzen

zachy

New member
Hallo Community,

ich habe folgenden Code geschrieben:

Code:
<!DOCTYPE html>
<html>
  <head>
    <title>Umsatzsteuerrechner mit Datentypprüfung</title>
	<meta charset="utf-8" />
	<script type="text/javascript">
		function fehlerbehandlung(fehler, datei, zeile)
		{
			alert("Fehler: " + fehler + "\nDatei: " + datei + "\nZeile: " + zeile);
		}
	</script>
  </head>
  <body>
	<script type="text/javascript">
		window.onerror = fehlerbehandlung;
				
		function steuer(betrag, checkZahl(satz))
		{
			document.write(betrag + betrag / 100 * satz);
		}
		
		function checkZahl(zahl)
		{
			if (isNaN(parseInt(zahl)))
			{
				return 0;
			}
			else
			{
				return parseInt(zahl);
			}
		}
		
		steuer(100,19);		
	</script>
  </body>
</html>

Die Funktion checkZahl() soll prüfen, ob die ihr übergebene Zahl wirklich eine Zahl ist. Wenn ja, wird der Wert von Zahl zurückgegeben, wenn nein 0.

Ich möchte jetzt in der Funktion steuer() die Funktion checkZahl() verwenden, um zu prüfen, ob der Parameter satz tatsächlich eine Zahl ist.

Leider wird mir am Browser nichts ausgegeben, wenn ich das Skript aufrufe. Komischerweise gibt mir aber auch die Fehlerbehandlung keinen Fehler aus.

Wenn ich checkZahl() aus steuer() entferne, dann funktioniert es. Es liegt also irgendwie am Aufruf der Funktion checkZahl() in steuer(). Allerdings sollte es doch in JavaScript funktionieren, den Rückgabewert einer Funktion als Parameter in einer anderen Funktion zu nutzen.

An dieser Seite habe ich mich übrigens orientiert: Javascript Closures ? Innere Funktionen | mediaevent.de

Hat jemand eine Idee, wo mein Fehler ist?

Viele Grüße
zachy
 
Komischerweise gibt mir aber auch die Fehlerbehandlung keinen Fehler aus.
Das liegt daran, dass du einen Syntaxfehler hast, der auch die Ausführung der Registrierung der Fehlerbehandlung unterbindet.

Allerdings sollte es doch in JavaScript funktionieren, den Rückgabewert einer Funktion als Parameter in einer anderen Funktion zu nutzen.
Nicht so, wie du denkst. In dem Verlinkten Link ist das auch anders gemacht.

Code:
<!DOCTYPE html>
<html>
  <head>
    <title>Umsatzsteuerrechner mit Datentypprüfung</title>
	<meta charset="utf-8" />
	<script type="text/javascript">
		function fehlerbehandlung(fehler, datei, zeile){
			alert("Fehler: " + fehler + "\nDatei: " + datei + "\nZeile: " + zeile);
		}
	</script>
  </head>
  <body>
	<script type="text/javascript">
		window.onerror = fehlerbehandlung;
				
		function steuer(betrag, satz){
			satz = checkZahl(satz);
			alert(betrag + betrag / 100 * satz);
		}
		
		function checkZahl(zahl){
			// kürzer: return parseInt(zahl, 10) || 0;
			if (isNaN(parseInt(zahl, 10))){
				return 0;
			}
			else {
				return parseInt(zahl, 10);
			}
		}
		
		steuer(100, 19);		
	</script>
  </body>
</html>
 
Zurück
Oben