简单的js代码求注释,就几句话

后面的i去掉为什么没效果了。index是什么?说通俗点。。

(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,会导致异常,会出错。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-13
我基本认同楼上的解释,但是有一点要纠正:如果不传参数 i 的话,index 是 undefined 不是 null
相似回答
大家正在搜