原生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); 展开
alert(onload.length);
alert(arguments.length);
}
onload(3,4,5); 展开
1个回答
展开全部
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询