Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

JavaScript: Recursion

Recursion is a technique, where a Function can call itself. For example, following function calculates the factorial of a number using recursion.

function factorial(n){
         if(n
                  return 1;
         return n * factorial(n-1);
}

There are three ways that a function can refer to itself.
a.   By using function name
b.   By using arguments.callee
c.   By using an in-scope variable that refers to the function

By using function name
function factorial_1(n){
         if(n
                  return 1;
         return n * factorial_1(n-1);
}

By using arguments.callee
function factorial_2(n){
         if(n
                  return 1;
         return n * arguments.callee(n-1);
}

By using an in-scope variable that refers to the function
var factorial_3 = function factorial(n){
         if(n
                  return 1;
         return n * factorial_3(n-1);
}

factorial.html





Factorial



"text/javascript">
// By using function name
function factorial_1(n) {
if (n 2)
return 1;
return n * factorial_1(n - 1);
}

// By using argument.callee
function factorial_2(n) {
if (n 2)
return 1;
return n * arguments.callee(n - 1);
}

// By using in-scope variable
var factorial_3 = function factorial(n) {
if (n 2)
return 1;
return n * factorial_3(n - 1);
}

document.write("Factorial of 5 is " + factorial_1(5) + "
"
);
document.write("Factorial of 10 is " + factorial_2(10) + "
"
);
document.write("Factorial of 20 is " + factorial_3(20) + "
"
);





Open above page in browser, you can able to see following text.

Factorial of 5 is 120
Factorial of 10 is 3628800
Factorial of 20 is 2432902008176640000



Previous                                                 Next                                                 Home


This post first appeared on Java Tutorial : Blog To Learn Java Programming, please read the originial post: here

Share the post

JavaScript: Recursion

×

Subscribe to Java Tutorial : Blog To Learn Java Programming

Get updates delivered right to your inbox!

Thank you for your subscription

×