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

[FRAGE] Funktion in sich selbst aufrufen?

realmagic

New member
Hallo liebe jsWelt Gemeinde,

ich würde gerne eine Art verschachtelte Funktion erstellen, die sich in bestimmten Fällen selbst mit einem Modifikator wieder aufruft (ich hoffe, das war halbwegs verständlich ausgedrückt...).

So in etwa würde ich mir das vorstellen:
Code:
function myFunction (modifikator){
  var mod = modifikator || 0;
  var rndNumber = 1 + Math.floor(Math.random() * 100)

  if(rndNumber > 95){
    myFunction(20);
  }else{
    alert('Ausgabe');
  }
}

Ziel ist es also, eine zufällige Zahl auswürfeln zu lassen und wenn diese über 95 liegt, soll ein weiterer "Wurf" gemacht werden, welcher aber dann um +20 modifiziert ist (exemplarisch). Meine Frage ist, ob das überhaupt möglich ist oder ich den vollkommen falschen Ansatz habe?

Vielen Dank im Vorfeld...

Robert
 
Versteh mich jetzt bitte nicht falsch, aber bei solchen Fragen frag ich mich immer, wieso probierst du es nicht einfach aus, wenn du dir schon konkreten Code überlegt hast? :D
 
Robert, da hat Julian aber Recht. Du zeigst schon den annähernd richtigen Code und fragst trotzdem nochmal. Seltsam.
Am besten machst du dir ein Gerippe, das du für solche Tests immer wieder heranziehst:
HTML:
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>Test</title>
	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <!-- Das hier nach Bedarf nutzen, einfach gewünschte Version eintragen -->
</head>
<body>
	<style type="text/css" scoped>
	body {
		color:		#000000;
		font-size:	12px;
	}
	/* hier beliebigen CSS Code, oder eben keinen. Attribut scoped ist an dieser Stelle Pflicht */
	</style>

	<script>
		console.log('und hier beliebigen JS Code zum Testen rein');
	</script>
</body>
</html>

Dann Fehlerkonsole öffnen (meistens F12) und loslegen!
Und wenn dann was nicht passt, einfach hier fragen und direkt das Testgerippe inkl. eventueller Fehlerkonsole Ausgaben mit dazu. Dann läuft das wie geschmiert. Antworter müssen nicht unnötig rückfragen und Frager müssen nicht unnötig lange auf Antwort warten.
 
Auch die Frage: Warum eine neue Variable mod, wenn modifikator bereits existiert?

Dann eher entweder so:
Code:
function myFunction (modifikator){
  modifikator = modifikator || 0;
  var rndNumber = modifikator + 1 + Math.floor(Math.random() * 100)

  if(rndNumber > 95){
    myFunction(20);
  }else{
    alert('Ausgabe');
  }
}

Oder so:
Code:
function myFunction (modifikator){
  var rndNumber = (modifikator || 0) + 1 + Math.floor(Math.random() * 100)

  if(rndNumber > 95){
    myFunction(20);
  }else{
    alert('Ausgabe');
  }
}
 
wieso probierst du es nicht einfach aus, wenn du dir schon konkreten Code überlegt hast? :D
Ich glaub das ist einfach die Unsicherheit. Viele möchten erst mal nachfragen, bevor sie irgendwas machen oder probieren. Es könnte ja was kaputt gehen...
 
Zurück
Oben