美文网首页Web 前端开发 程序员让前端飞
如何取出for循环中i的实时值

如何取出for循环中i的实时值

作者: 阿r阿r | 来源:发表于2017-06-14 15:38 被阅读0次

    首先要理解几个概念(这里不详细解释)
    1.作用域和作用域链
    2.闭包

    var index=-1;
    for(var i=0;i<10;i++){
         document.onclick = function(){
         alert("i:"+k); //i:10
        }
        index = i;
    }
    alert("index:"+index); //index:9
    

    这个时候,单击屏幕,i的值是10;index的值是9。
    那么如果我想在某个特定条件下取出i的值应该怎么办呢?
    例如 我就想取出i=5;

                var index=-1;
                for(var i=0;i<10;i++){
                    var a=function(k){
                        if(k==5){   // 当i的实时值为5时,执行
                            document.onclick = function(){
                            alert("i:"+k); //i:5
                            }
                        }
                    };  //创建函数,赋值给a
                    a(i);  //通过a调用函数,将i的实时值赋值给k传入函数
                    index = i;
                }
                alert("index:"+index); //index:9
    

    先定义一个函数,将 i 作为参数值传给 k ,然后弹出 符合条件下的 k 值,也就是实时的 i 值了。

    如果我想用index 来保存实时的 i 值,只需要把 index 放到特定条件内部就可以了。

                            var index=-1;
                for(var i=0;i<10;i++){
                    var a=function(k){
                        if(k==5){
                            document.onclick = function(){
                            alert("i:"+k);    // i:5
                            }
                            index = k;
                        }
                    };
                    a(i);
                }
                alert("index:"+index);  //index:5
    

    注意如果 index是在判断条件外面的函数,则 for循环还是会使 index值变成9

                           var index=-1;
                for(var i=0;i<10;i++){
                    var a=function(k){
                        if(k==5){
                            document.onclick = function(){
                            alert("i:"+k);    // i:5
                            }
                        }
                                           index = k;
                    };
                    a(i);
                }
                alert("index:"+index);  //index:9
    

    相关文章

      网友评论

        本文标题:如何取出for循环中i的实时值

        本文链接:https://www.haomeiwen.com/subject/mrosqxtx.html