$.each() 回调函数传递出的值的问题。

新人有一个理解比较模糊的地方.
Javascript and Jquery都有出现返回值的情况。
比如$.each()会返回一个索引和该索引的值。

$.each([52, 97], function(index, value) {
  alert(index + ': ' + value);
});

我在后面使用了一个每次迭代会调用的function,它有两个虚参 index,value
是不是function必须有两个参数,即使我不用到其中的一个(比如我只需要返回的值而不用该值的索引),也必须写两个参数上去。
参数是按照顺序返回的吗?
就是参数我可以写成function(a,b), a就是索引,b就是该索引的值。无所谓名称,关键是位置?
或者我用到哪个参数就写哪个,不用所以参数都写上?

谢谢各位花时间阅读我的问题,谢谢。

阅读 3.7k
5 个回答

如果你只要索引,你只要写一个参数就够了,不用两个都写,jquery会根据你填入的参数数量,按其顺序放入函数中,可以写成:
$.each(Array, function(index) {

})

如果你只想value参数,那就两个都要写了,可以写成:
$.each(Array, function(index,value) {

})

并不是用到哪个参数就写哪个,位置是决定性因素

有两个参数,你用几个写几个,名称无所谓,关键是位置.

你说的很对,无所谓名称,关键是位置

谢邀。

$.each([52, 97], function(index, value) {
  alert(index + ': ' + value);
});

你定义的这个function是一个回调函数,最后都会被each每次遍历的时候调用;
也就是说,你写的匿名函数是个函数定义,这里的index,value是形参,当这个回调函数被执行的时候(被each内部调用执行),each 内部会固定传入俩个实参;
第一个实参代表遍历的索引,第二个代表遍历的值

参考:
https://github.com/jquery/jqu...

clipboard.png
jquery实现中的样子。

写不写都没问题吧

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