2个回答
展开全部
(function(index){
// 处理代码
})(i);
楼主一定对上面的代码是怎么执行的完全不明白。在弄清楚为什么去掉i后就没有效果,你必须得先知道这个i到底为什么不能去掉,这种写法又到底是怎么回事。
其实这是一种函数立即调用的写法。也就是定义一个匿名函数,然后立即就执行这个函数。这样的写法相当于:
function tmpName(index){
// 处理代码
}
tmpName(i);
再接近一点的写法如下:
var fn = function(index){
// 处理代码
}
// 函数调用
fn(i);
你把上面的fn换成function(index){},是不是就是和你的那种写法一样了?只不过换后的函数省去了函数名。
很明显,index是形参,而i是在调用时传递的实参。如果不穿进去一个i,那就相当index参数没有了。这样的话,这个函数中用到的index的值就是null。试想,mDD[index]就变成了mDD[null],数组访问可以这样吗?这样不就出异常了吗?也是因此,不传进去i,会导致异常,会出错。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询