ECMAScript中的函数不能重载.但可以用相同的名字在一个作用域中定义两个函数而不会引发错误,但真正使用的是最后一个函数.
function doAdd(iNum)
{
alert(iNum + 100 );
}
function doAdd(iNum)
{
alert(iNum + 10 );
}
doAdd( 10 ); // output 20
{
alert(iNum + 100 );
}
function doAdd(iNum)
{
alert(iNum + 10 );
}
doAdd( 10 ); // output 20
该段代码显示20,因为第二个函数的定义覆盖了第一个定义.但是我们可以使用arguments对象避开这种限制.
代码
function doAdd()
{
if (arguments.length == 1 )
{
alert(arguments[ 0 ] + 10 );
} else if (arguments.length == 2 )
{
alert(arguments[ 0 ] + arguments[ 1 ]);
}
}
doAdd( 10 ); // output 20
doAdd( 30 , 20 ); // output 50
{
if (arguments.length == 1 )
{
alert(arguments[ 0 ] + 10 );
} else if (arguments.length == 2 )
{
alert(arguments[ 0 ] + arguments[ 1 ]);
}
}
doAdd( 10 ); // output 20
doAdd( 30 , 20 ); // output 50