原生js中onload事件传参问题,下面这段代码会依次弹出什么以及为什么?

window.onload=function(a,b){alert(onload.length);alert(arguments.length);}onload(3,4,... window.onload=function(a,b){
alert(onload.length);
alert(arguments.length);
}
onload(3,4,5);
展开
 我来答
cxb8888
2018-04-25 · 超过11用户采纳过TA的回答
知道答主
回答量:46
采纳率:71%
帮助的人:20.7万
展开全部
window.onload=function(a,b){
    alert(onload.length);
    alert(arguments.length);
}

单纯先说这个,onload事件页面加载完,就会自动执行
onload是个函数, onload.length是函数形参的个数,你传入了 a、b所以是2

arguments是实参的参数数组,没有真正传参,但是实参会有个 ev对象,所以是 1
当你:
onload(3,4,5); 去手动调用函数的时候,

onload.length 不会变,还是2,因为说过,是形参的个数

而arugments 显然变成3,因为你实际传进去3个
总体来说,当你手动调用,肯定比页面加载完调用要先执行

所以,最终答案是: 2 3 2 1
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式