Heim  >  Artikel  >  Web-Frontend  >  Rekursive Funktion in JS

Rekursive Funktion in JS

高洛峰
高洛峰Original
2017-02-08 15:24:431574Durchsuche

Wenn in Programmiersprachen die Funktion Func(Type a,...) direkt oder indirekt die Funktion selbst aufruft, wird die Funktion als rekursive Funktion bezeichnet. Rekursive Funktionen können nicht als Inline-Funktionen definiert werden.

Rekursive Funktion:

function factorical(num){
  if(num<=1){
    return 1;
  }
  else{
    return num*factorical(num-1);
  }
}
factorial(2)//2

Diese rekursive Funktion verwendet eine Funktion, um die Funktion selbst aufzurufen, aber ist das wirklich gut? ? , okay, schau hier als nächstes

var another=factorical;
factorical=null;
console.log(another(2))//会报错说 factorical not a function

Das ist der Nachteil des Funktionsaufrufs. Wie man ihn löst, siehe unten

function factorical(num){
  if(num<=1){
    return 1;
  }
  else{
    return num*arguments.callee(num-1);
  }
}
var another=factorical;
factorical=null;
console.log(another(2))//2

Die Verwendung von arguments.callee anstelle des oben genannten Funktionsnamens stellt sicher, dass kein Fehler auftritt, egal wie die Funktion aufgerufen wird.

Das Obige ist die vom Herausgeber eingeführte rekursive Funktion. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht Sie rechtzeitig. Ich möchte mich auch bei Ihnen allen für Ihre Unterstützung der chinesischen PHP-Website bedanken!

Weitere Artikel zu rekursiven Funktionen in JS finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn