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

后面的i去掉为什么没效果了。index是什么?说通俗点。。... 后面的i去掉为什么没效果了。index是什么?说通俗点。。 展开
 我来答
帐号已注销
2013-04-13 · TA获得超过4630个赞
知道大有可为答主
回答量:1345
采纳率:50%
帮助的人:1636万
展开全部
(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,会导致异常,会出错。

百度网友8041235
2013-04-13 · TA获得超过227个赞
知道小有建树答主
回答量:334
采纳率:0%
帮助的人:228万
展开全部
我基本认同楼上的解释,但是有一点要纠正:如果不传参数 i 的话,index 是 undefined 不是 null
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式