函数递归
调用自身的函数称为递归函数。。
函数引用自身有三种方式:
1.函数名称
2.函数参数(arguments)
3.引用函数的范围内变量
!递归出口:在某些方面,递归类似于循环。它们都多次执行同一代码,并且都需要一个条件(以避免无限循环,或者在这种情况下避免无限递归)。如果递归没有出口,代码一直执行,永远没有结果。因此在写递归函数的时候建议先找到递归的出口再做运算。
案例:经典兔子问题
函数闭包现象
closure;当内部函数被保存到外部时,将会形成闭包。
主要功能:保护变量不被污染。
var nAdd;
function outer() {
var n = 4399;
nAdd = function() {
n++;
};
return function() {
console.log(n);
}
}
var getN = outer();//将返回的匿名函数赋值给getN
getN(); // 4399
nAdd(); // 对outer()函数AO中的n进行了操作
getN(); // 1000
闭包的作用:
- 实现公有变量
- 可以做缓存
- 可以实现封装,属性私有化
- 模块化开发,防止污染全局变量