js模拟实现重载以及默认参数

来源:互联网 发布:向男友求饶知乎 编辑:程序博客网 时间:2024/05/22 07:58

    众所周知,js是函数不支持重载和默认参数的,但是我们可以使用一些其他方法来模拟这个方法的实现。

    首先看一下重载的定义:函数名相同,函数的参数列表不同(包括参数个数和参数类型),至于返回类型可同可不同。

    以及默认参数的定义:默认参数指的是当函数调用中省略了实参时自动使用的一个值。

    那么如何实现这两个功能呢,一个很简单的方法就是使用arguments来进行模拟。

    下面先说实现重载的方法:

    

function overLoad(){//用这样的方法模拟重载if(arguments[0]){//如果存在第一个参数if(arguments[1]){//如果第一个参数第二个参数都存在//to do...alert(arguments[0]+arguments[1]);}else{//如果只有第一个参数alert(arguments[0]);//to do...}}else{//如果无参alert("null");//to do...}}

    接下来是实现默认参数的方法:

function defaultArg(){//用这样的方法模拟默认参数var a = arguments[0]?arguments[0]:"hello";//第一个参数的默认值为hellovar b = arguments[1]?arguments[1]:"world";//第二个参数的默认值为world//...alert(a+b);}
    下面进行一下测试:
//重载测试overLoad();//nulloverLoad("hello ");//hello overLoad("hello ","world");//hello world//默认参数测试defaultArg();//hello worlddefaultArg("你好 ");//你好 worlddefaultArg("你好 ","世界");//你好 世界