妙博客

主机评测 香港服务器 洛杉矶VPS测评

Javascript闭包传参问题,怎样使闭包函数内部的值, 不受外部影响?

1.比如,setInterval方法,可以用下面代替:

function createInterval(f,dynamicParameter,interval) {
    return setInterval(function() {
        f(dynamicParameter);
    }, interval);
},

使用方法:

for(var i = 0; i < 10; i++){
    createInterval(function(a){
        console.log(a);
    }, i, 1000);
}

结果:

0

1

2

3

4

5

6

7

8

9


假设你使用普通方法:

for(var i = 0; i < 10; i++){
    setInterval(function(){
      console.log(i);
    }, 100);
}

结果:

9

9

9

9

9

9

9

9

9

9


Copyright Your 142132.com Rights Reserved. 赣ICP备17010829号-2