为了账号安全,请及时绑定邮箱和手机立即绑定

forEach里面的number和i为什么不用定义

forEach里面的number和i为什么不用定义

Whitney_Wang 2016-10-30 13:34:52
var hourNumbers=[3,4,5,6,7,8,9,10,11,12,1,2]; hourNumbers.forEach(function(number,i){ var rad=2*Math.PI/12*i; var x=Math.cos(rad)*(r-30); var y=Math.sin(rad)*(r-30); ctx.fillText(number,x,y); })这段代码中对hourNumbers数组遍历,其中并没有定义number和i是什么意思啊,为什么直接就识别number 是数组中的数字,而i是索引号了呢。是forEach的原因吗?
查看完整描述

1 回答

?
李晓健

TA贡献1036条经验 获得超461个赞

hourNumbers.forEach(function(number,i/*这里不是传进来了吗,所以function里面就可以直接用了*/){
var rad=2*Math.PI/12*i;
var x=Math.cos(rad)*(r-30);
var y=Math.sin(rad)*(r-30);
ctx.fillText(number,x,y);
})


查看完整回答
反对 回复 2016-10-30
  • Whitney_Wang
    Whitney_Wang
    后面老师没有再调用,也没有给number和i传过具体的数。但是在运行的时候,为什么就直接识别了number 是数组中的数字,i是索引号呀?
  • 李晓健
    李晓健
    调用是forEach内部调用的,不是我们调用的,这两个参数它内部调用时会传的。
  • Whitney_Wang
    Whitney_Wang
    所以是forEach的语法规定给里面的函数传两个参数,第一个是数字,第二个是索引号吗?
点击展开后面1
  • 1 回答
  • 0 关注
  • 1762 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信