码迷,mamicode.com
首页 > Web开发 > 详细

如何实现JS函数的重载

时间:2017-03-12 21:14:52      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:ber   alert   调用   包含   版本   span   相同   else   turn   

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函数的重载

标签:ber   alert   调用   包含   版本   span   相同   else   turn   

原文地址:http://www.cnblogs.com/qq313462961/p/6538998.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!