一段代码,找不到错误原因,求帮忙
程序代码:
var timeCirculate; var strCirculateMSG = ""; var blnCirculate = false; function Fun(array,fun1,fun2){ var i=0,len = array.length; //这里要注意在执行过程中数组最好是不变的 var arr;// 用于判断是否中断递归操作 timeCirculate = setTimeout(function(){ arr = fun1( array[i] , i++ ); //循环体要做的操作 blnCirculate = arr[0]; strCirculateMSG = arr[1]; //alert(blnCirculate); //alert(strCirculateMSG); // 正常 循环体内 if(blnCirculate){ if( i < len ){ timeCirculate = setTimeout(arguments.callee(array,fun1,fun2),0); }else{ fun2(); //循环结束之后要做的操作 } // 异常,退出循环 }else{ fun2(); //循环结束之后要做的操作 } },0); } function a(value,i){ if(value == 3){ return [false,"错啦"]; } return [true,""]; } function b(){ clearTimeout(timeCirculate); // 清除 setTimeout } var arr=new Array(1,2,3); Fun(arr,a,b); alert(blnCirculate); alert(strCirculateMSG);
如果在 Fun方法内 alert 2个变量,就能得到需要的数据,可如果在 Fun外却总是初始定义的值,为什么 Fun 方法内无法修改 外部定义的 blnCirculate strCirculateMSG 2个 变量的值哪?要如何修改