为了账号安全,请及时绑定邮箱和手机立即绑定

setInterval中的变量问题?这是闭包问题么?

setInterval中的变量问题?这是闭包问题么?

隔江千里 2018-09-07 19:14:34
   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();


查看完整回答
反对 回复 2018-10-29
  • 1 回答
  • 0 关注
  • 983 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号