如何实现JS函数的重载

eclzkweu
2013-10-14 · TA获得超过3383个赞
知道小有建树答主
回答量:883
采纳率:0%
帮助的人:2095万
展开全部
functionf(length){alert("高为:"+length);}functionf(length,width){alert("高为:"+length+",宽为:"+width);}</srcipt 上面那段代码其实是行不通的,因为函数定义时的参数个数和函数调用时的参数个数没有任何关系。在函数中可以用f.arguments[0]和f.arguments[1]得到调用时传入的第一和第二个参数,所以定义function(length),后面用f(10,10)调用是没有问题的。所以在上面这段代码中,第二个函数是永远不可能被调用到的,那么,要怎样才能实现像函数重载那样的功能呢? 那就是在函数定义中用f.arguments.length判断一下调用时传入的参数个数。然后对不同的情况采用不同的处理方式。 如下:复制代码代码如下:<scriptlanguage="JavaScript" functionf(){varlen=arguments.length;if(1==len){varlength=arguments[0]; varwidth=arguments[1]; f2(length,width);}else{varlength=arguments[0]; f1(length);}}functionf1(length){alert("高为:"+length);}functionf2(length,width){alert("高为:"+length+",宽为:"+width);}</srcipt 这样,你就可以给函数f()传入一个参数也可以传入两个参数了,比如f(10)和f(10,10); 个人觉得,这样虽然可以实现重载,但也不是很好用,我们可以根据具体情况在一个函数中实现重载,如果要重载的两个函数相差较大,那就保留两个函数,而如果两个函数的实现基本差不多,那么可以在一个函数中进行判断,处理不同的部分,而不需要像上面那样写成三个函数,如下:复制代码代码如下:<scriptlanguage="JavaScript"
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式