HTML and CSS Reference

In-Depth Information

Figure 7.14
The closure remembers the values of local variables.

Definition of recursion:

recursion: See recursion.

This definition says it all! JavaScript sup-

ports recursion. So what is it? Have you

ever taken apart a Russian doll? Open up

the outside doll and there's another

smaller duplicate doll inside it, take that

one out, and you find another, and so on, until you get down to a tiny doll at the end.

Then when you put them back, you start with the last doll you opened and keep return-

ing each doll until you get back to the first one you opened. A recursive function is a

function that calls itself. It's a chain of function calls to the same function. The first time

it calls itself is the first level of recursion, the second time is the second level, and so on.

When a function calls itself, execution starts at the beginning of the function, and when

the function ends, the program backs up to where it was when it called the function and

starts executing from that point. Most important, there must be a way to stop the recur-

sion, or it will be infinite, and probably cause the program to crash.

An example often used to describe recursion can be demonstrated with a function to

produce a Fibonacci sequence of numbers: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, and so on.

Here is a little bit of history about how this formula was derived.

In the beginning of the 13th century, an Italian mathematician, Leonardo Fibonacci,

was trying to solve the following problem presented at a mathematical competition in

Pisa: How many rabbits would be produced in a year if, beginning with a single pair of

rabbits, every month each pair reproduces a new pair of rabbits, which become produc-

tive when they are one month old, and none of them die, and so on? Fibonacci came up