首页 > 为什么会输出3个10?

为什么会输出3个10?

function a(){
    var i=10;
    b=function(){return i++;};
    return i;
}

console.log(a(),b(),a());// 10 10 10

尤其是为什么第三个还是10? i++怎么没起作用? 感谢


作用域的问题,建议你去看下var定义


第一个a(),直接return i 为10;
第二个b(),return i++,此时i的值是10,所以先return,再自增,输出10并且i为11;
第三个a(),重新定义了i=10,所以return 为10。

【热门文章】
【热门文章】