原生JS for循环堵塞 闭包

  1. 我对js进程堵塞闭包可能还是理解不够透彻;

clipboard.png

结果如下图:

clipboard.png
结果是一样的。
我觉得我这么写没问题啊。。。求大神们知道,小弟在这谢谢您nei!

阅读 3.6k
4 个回答

函数是按值传递的,可以直接写callbackFun(tmp[j]);

var arr = ["str1","str2","str3","str4","str5"];
    for (var i = 0; i < arr.length; i++) {
        log(arr[i]);
    }

    function log(str){
        console.log(str);
    }

结果是:
clipboard.png

function showBindInfo(data){
   var  tmp = data.split('$');
   for(var j =0; j<tmp.length-1;j++){
   var item =  (function(p){
       var temStr = tmp[p];
       console.log(temStr);
       return temStr;
     })(j);
     test(item);
   }
}
   function test(m){
      console.log(m);
   }
 说明你对闭包还不是很理解

var j = 0 换为let j = 0试试?
你这里的callBackFun是不是一个异步执行的函数?

我把这个代码执行了一下并没有问题,你能把结果发出来看看吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题