var goTop=function (){
let i=0; i++;
console.log(i);
}
setInterval(goTop,1000);这段代码为什么一直打印出1,如何让他打印12345,i递增!
1 回答

MMTTMM
TA贡献1869条经验 获得超4个赞
**因为你每次调用函数goTop,又let i=0;把i重新声明为0了
要输出1234....只需要把let扔出去**
let i = 0; var goTop = function() { i++; console.log(i); } setInterval(goTop, 1000)
顺便下面这个才叫闭包:
闭包的二大要点:
// 1、在函数A外面,调用函数A内的内容——函数B
// 2、函数B可以层层向上调用局部变量n和全局变量m,但是外面的无法获取n
var m = 100;function A() { var n = 50; function B() { n++; var sum = n + m; console.log(sum); } return B; // 此处注意是 B 而不是B(),返回的是函数的内容,而不是执行后的结果}var c = A(); c();
添加回答
举报
0/150
提交
取消