首页 > 代码库 > 如何实现JS函数的重载
如何实现JS函数的重载
ECMAScript 函数不能像传统意义上那样实现重载。而在其他语言(如 Java)中,可以为一个函数编写两个定义,只要这两个定义的签名(接受的参数的类型和数量)不同即可。如前所述,ECMAScirpt函数没有签名,因为其参数是由包含零或多个值的数组来表示的。而没有函数签名,真正的重载是不可能做到的。
如果在 ECMAScript中定义了两个名字相同的函数,则该名字只属于后定义的函数。请看下面的例子:
function addSomeNumber(num){ return num + 100;}function addSomeNumber(num) { return num + 200;}var result = addSomeNumber(100); //300
在此,函数 addSomeNumber()被定义了两次。第一个版本给参数加 100,而第二个版本给参数加200。由于后定义的函数覆盖了先定义的函数,因此当在最后一行代码中调用这个函数时,返回的结果就是 300。
如前所述,通过检查传入函数中参数的类型和数量并作出不同的反应,可以模仿方法的重载。
function addSomeNumber(num1) { var num1= arguments.length; if(1 == num1) { var num2= arguments[1]; alert("高为:"+num1+",宽为:"+num2); } else { alert("高为:"+num1); } }
个人理解浅薄,欢迎指正!
以后及时补充~
【END】
如何实现JS函数的重载
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。