<script>
function A() {
let num = 100;
//1.A函数内部返回一个B函数(显示)
return function B() {
// console. log(num) //2.B函数内部,访间A函数私有变量num
num = num + 1;
console.log(num);
};
}
let f = A(); // 3.变量f引用返回的B函数
f(); //
f();
</script>
let B = function a() {
let a = 1
return function () {
a = a + 1
console.log(a);
}
}
B()()
B()()
let d =B()
d()
d()
function A() {
let num = 100;
//1.A函数内部返回一个B函数(显示)
return function B() {
// console. log(num) //2.B函数内部,访间A函数私有变量num
num = num + 1;
console.log(num);
};
}
let f = A(); // 3.变量f引用返回的B函数
f(); //
f();
闭包内部函数在操作外部函数变量,并且在内部操作这个变量自增 重要的是要有一个变量保存外层函数的引用,不释放这块变量的引用,才能达到累加的目的
function test() {
let a = []
function b() {
a.push(1)
console.log(a);
if (a.length < 5) {
b()
} else {
return 1
}
}
// return 的是b的调用
return b()
}
test()
递归的话是返回闭包的调用,才能让外层变量一只累加