3 回答
会飞的四脚蛇
TA贡献5条经验 获得超3个赞
js没有其他语言比如java函数重载的概念,js的函数名相同只会覆盖,后定义函数覆盖先定的函数,但是js可以模拟函数重载。
@星典 的例子,明显的函数覆盖,绝不是重载,永远只会执行最后定定义的f函数.
function f(length) { alert("高为:"+length); } function f(length,width) { alert("高为:"+length+",宽为:"+width); } f() //高为:undefined,宽为:undefined f(99) // 高为:99,宽为:undefined f(99,1000) // 高为:99,宽为:1000
如上函数改为以下才是js模拟的重载
function f(length,width) { var len =arguments.length; if( len===0 ){ alert("请传入参数"); } if( len ===1){ alert("高为:"+length); } if( len ===2){ alert("高为:"+length+",宽为:"+width); } } f() // 请传入参数 f(99) // 高为:99 f(99,1000) //高为:99,宽为:1000
已采纳
田心枫
TA贡献1064条经验 获得超383个赞
function f(length) { alert("高为:"+length); } function f(length,width) { alert("高为:"+length+",宽为:"+width); }
方法重载不都这样吗
添加回答
举报
0/150
提交
取消