闭包经典题

2018-09-05  本文已影响0人  QinRenMin

小测试

function fun(n,o) {
     // console.log(n,o);
     console.log(o);

    return {
        fun:function(m){
            // console.log(m+','+n);
            return fun(m,n);
        }
    };
}
var a = fun(0);a.fun(1);a.fun(2);  a.fun(3);//undefined,0,0,0
var b = fun(0).fun(1).fun(2).fun(3);//undefined,0,1,2
var c = fun(0).fun(1);  c.fun(2);  c.fun(3);//undefined,0,1,1
for (var i = 1; i <= 5; i++) {

    setTimeout( function timer() {

        console.log(i);

    }, 1000 );

}

for (var i = 1; i <= 5; i++) {

    (function(i){

        setTimeout( function timer() {

            console.log(i);

        },  1000 );

    })(i);

}

for (let i = 1; i <= 5; i++) {

    setTimeout( function timer() {

        console.log(i);

    }, 1000 );

}

手动想想为何输出以上值

上一篇 下一篇

猜你喜欢

热点阅读