js调用同名方法的问题

javaprogrammerzhang 2009-05-19 09:28:29
页面有一个按钮
<button onclick="onclick('a','b','c','d')"></button>
在一个js文件里有三个同名方法
onclick(a,b,c,d){
alert('1');
}
onclick(a,b,c,d,e,f){
alert('2');
}
onclick(a,b,c,d,e,f,g){
alert('3');
}
每次单击按钮,都alert的3
为什么不是alert 1呢
...全文
446 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
谢谢大家了
lzj34 2009-05-19
  • 打赏
  • 举报
回复
JS 不支持函数重载, 可以在函数里根据 arguments.length 来确定调用时用了几个参数
wh110 2009-05-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 BlackAngel_can 的回复:]
JS 里面不支持重载。后写的方法,会覆盖前面的方法。
[/Quote]
这个就是问题的根本所在
relucent 2009-05-19
  • 打赏
  • 举报
回复
JS不支持函数重载的。

7 楼,那个只是通过检测参数个数来模拟重载。其实算不上函数重载。

西安风影 2009-05-19
  • 打赏
  • 举报
回复
onclick(a,b,c,d)
{
if(arguments.length==4)
{
alert('1');
}
if(arguments.length==6)
{
alert('2');
}
if(arguments.length==7)
{
alert('3');
}
}

西安风影 2009-05-19
  • 打赏
  • 举报
回复
JS 不支持函数重载, 可以在函数里根据 arguments.length 来确定调用时用了几个参数
==
支持
pt1314917 2009-05-19
  • 打赏
  • 举报
回复
楼上几位已经回答了。后面的方法覆盖前面的方法了。。
relucent 2009-05-19
  • 打赏
  • 举报
回复
JS不支持重载,最后一个onclick会覆盖前面的onclick方法
2009-05-19
  • 打赏
  • 举报
回复
JS 不支持函数重载, 可以在函数里根据 arguments.length 来确定调用时用了几个参数
s_liangchao1s 2009-05-19
  • 打赏
  • 举报
回复
定义3个同名方法 就跟你3个同名变量一样

var iCount = 0;
iCount = 1;

iCount = 2;
alert(iConut)



也就是第三个方法把前面的覆盖了.
BlackAngel_can 2009-05-19
  • 打赏
  • 举报
回复
JS 里面不支持重载。后写的方法,会覆盖前面的方法。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧